1
以下程序的工作原理:访问结构成员字符指针
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);
}
输出:分段故障
有人可以告诉代码的第二部分可能存在什么问题?对不起,如果我有错误地张贴在这里。
@Gabson;这真是一个很好的问题。 'char * a []'表示'a'是指向'char'的指针数组。 'char * a'将'a'定义为指向'char'的指针,而'char a []'将'a'定义为'char'数组。进一步阅读[Answer1](http://stackoverflow.com/a/18361686/2455888)和[Answer2](http://stackoverflow.com/a/18364638/2455888)。 – haccks