+ -
当前位置:首页 → 问答吧 → 结构访问

结构访问

时间:2010-09-01

来源:互联网

本帖最后由 gah 于 2010-09-01 12:21 编辑

typedef struct A_ *A;
typedef struct B_ *B;

struct A_(int x; B b};
struct B_(int y; char *z};

main()
{
    A aa;

    //问题:要想访问结构B中的字符串 z,该如何写( aa->b->z??)
}

作者: gah   发布时间: 2010-09-01

回复 gah

老写不对......

作者: gah   发布时间: 2010-09-01

(*aa)->b->z

作者: tempname2   发布时间: 2010-09-01



QUOTE:
(*aa)->b->z
tempname2 发表于 2010-09-01 12:17



抱歉,我的题目里弄多了一个*,现已改过来,请看1楼

作者: gah   发布时间: 2010-09-01

aa->b->z
就行了。

作者: pandaiam   发布时间: 2010-09-01

看不出来有什么问题,等高手。。。。。。

作者: tempname2   发布时间: 2010-09-01



QUOTE:
aa->b->z
就行了。
pandaiam 发表于 2010-09-01 12:25



我已尝试 aa->b->z,但报: error: dereferencing pointer to incomplete type

作者: gah   发布时间: 2010-09-01

struct A_(int x; B b};
struct B_(int y; char *z};

把这两句放前面试试。。

作者: pandaiam   发布时间: 2010-09-01

还真没注意这类问题,把struct的定义放到typedef前面试试。。。。。。

作者: tempname2   发布时间: 2010-09-01



QUOTE:
struct A_(int x; B b};
struct B_(int y; char *z};

把这两句放前面试试。。
pandaiam 发表于 2010-09-01 12:36



??其实 A 和 B 是分别在2个不同的头文件中的......

且,其他的结构都是 typedef 语句在前面,struct 的定义在后面,也没有问题的.......

作者: gah   发布时间: 2010-09-01

百度的结果是引“用了只声明未定义的结构体”,俺们对语法不熟,所以做出这种猜想。

作者: tempname2   发布时间: 2010-09-01

gcc 加编译参数 -save-temps ,然后看 xxx.i ,还看不出来就把 xxx.i 贴出来

作者: drangon   发布时间: 2010-09-01

main函数里面

struct A aa;

试试

作者: spongeliu   发布时间: 2010-09-01

相关阅读 更多

热门下载

更多