如何访问位于另一个结构内部的结构内部的数组/其他类型的数据.这是我到目前为止所尝试的,它的出现c并没有宣布.我知道我可以声明c,prod_t *c但它失败了我试图做的事情的目的,因为它不存在于root(a_tstruc)内部.
typedef struct {
char *name;
} prod_t;
typedef struct {
prod_t *c;
} a_t;
int
main(int agrc, char **argv){
a_t *root = malloc(sizeof(a_t));
root->c=malloc(sizeof(prod_t));
c->name = malloc( 5 * sizeof(char));
strcpy(c->name, "abc");
printf("%s",root.c->name);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在您的代码中,c->name不是有效的变量名称.c是结构变量的成员变量root.没有名为的独立变量c.
你可以使用喜欢
root->c->name = malloc( 5 );
Run Code Online (Sandbox Code Playgroud)
和
strcpy(root->c->name, "abc");
Run Code Online (Sandbox Code Playgroud)
和
printf("%s\n", root->c->name);
Run Code Online (Sandbox Code Playgroud)
另外,请记住,
sizeof(char)是存在保证生产1中C,这样就可以把那部分.free()它们.| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |