我目前有一个结构,它包含一个指向指针数组的指针。我试图给指针数组中的一个元素赋值,但我得到了一个分段错误。
aStruct->anArray[0]->string = test;
aStruct包含字符** anArray和字符*字符串。char *test = "test“。
当我尝试做我所做的事情时,我得到一个分段错误。该命令无效吗?
struct aStruct
{
char **anArray;
};
我使用calloc生成了一个大小为10的数组。
发布于 2011-10-02 09:52:53
aStruct->anArray->string =测试;
aStruct包含字符** anArray和字符*字符串。char *test = "test“。
该命令无效吗?
哪儿有的事儿。当然不是。aStruct->anArray[0]
应该是char*
,并且不会有成员->string
。
除此之外,如果它真的可以编译,而您只是发布了错误的代码,那么如果anArray
被正确分配并具有正确的大小,就不会出现分段错误。所以在你的程序中你需要这样的东西:
aStruct->anArray = malloc(size * sizeof(*aStruct->anArray));
其中size对于您的情况至少为1,但通常是您需要访问的元素的数量。
https://stackoverflow.com/questions/7625650
复制