Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 访问结构成员字符指针_C - Fatal编程技术网

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
的数组。进一步阅读和讨论。