如何为结构中指针指向的数组元素插入值

时间:2011-10-02 09:46:40

标签: c arrays pointers

我目前有一个包含指针数组指针的结构。我试图给指针数组中的元素赋值,但是我得到了一个分段错误。

aStruct->anArray[0]->string = test;

aStruct包含char ** anArray和char *字符串。 char * test =“test”。

当我尝试做我所做的事情时,我遇到了分段错误。该命令无效吗?

struct aStruct
{
   char **anArray;
};

我用calloc制作了一个大小为10的数组。

1 个答案:

答案 0 :(得分:0)

aStruct->anArray[0]->string = test;
     

aStruct包含char ** anArray和char *字符串。 char * test =   “测试”。

     

该命令无效吗?

当然不是。 aStruct->anArray[0]将为char*,并且不会有成员->string

除此之外,如果它真的编译并且您只发布了错误的代码,那么如果anArray被正确分配并且大小合适,则不会出现分段错误。所以你在程序中需要这样的东西:

aStruct->anArray = malloc(size * sizeof(*aStruct->anArray));

其中size至少为您的情况,但通常是您需要访问的元素数量。