访问结构成员字符指针

时间:2013-11-14 15:54:25

标签: c

以下程序有效:

int main()
{
    char *g[10];
    char a[10] = "test";
    g[0] = &a[0];
    printf("string = %s\n",g[0]);
    exit(0);
}

输出:test

但这不起作用:

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);
}

输出:分段错误

有人可以告诉代码的第二部分可能存在什么问题吗?对不起,如果我在这里发错了。

1 个答案:

答案 0 :(得分:3)

在第二个代码中,您使用指针p而未初始化它。这会导致未定义的行为 试试这个

struct abc q;
p = &q;
p->a[0] = t;
printf("value = %s\n", p->a[0]);