C 访问结构成员字符指针
以下程序工作:C 访问结构成员字符指针,c,C,以下程序工作: int main() { char *g[10]; char a[10] = "test"; g[0] = &a[0]; printf("string = %s\n",g[0]); exit(0); } 输出:测试 但这不起作用: int main() { char t[] = "test"; struct abc { char *a[255]; }*p; p->a[0
int main()
{
char *g[10];
char a[10] = "test";
g[0] = &a[0];
printf("string = %s\n",g[0]);
exit(0);
}
输出:测试
但这不起作用:
int main()
{
char t[] = "test";
struct abc
{
char *a[255];
}*p;
p->a[0] = &t[0];
printf("value = %s\n", p->a[0]);
exit(0);
}
输出:分段故障
有人能说出代码第二部分的问题吗?对不起,如果我在这里发错了。在您的第二个代码中,您正在使用指针
p
,而没有初始化它。这会导致未定义的行为试试这个
struct abc q;
p = &q;
p->a[0] = t;
printf("value = %s\n", p->a[0]);
@加布森;这真是个好问题
char*a[]
表示a
是指向char
的指针数组char*a
将a
定义为指向char
的指针,而char a[]
将a
定义为char
的数组。进一步阅读和讨论。