C - 创建子函数重新分配数组大小

时间:2013-11-14 09:44:00

标签: c arrays pointers struct realloc

我遇到指针问题。我已经阅读了30多篇有关此主题的帖子,但没有一篇符合我的设置。这就是我想要做的事情:

void doSomething(myStruct **myList)
{
    resizeMyList(myList,5);

    myList[0] = '42';
    myList[1] = '43'; // ERRORS OUT OF MEMORY
}

void resizeMyList(myStruct **theArray,int size)
{
    myStruct *new_ptr = realloc(*theArray,(size * sizeof myStruct));

    if(new_ptr)
         *theArray = new_ptr;
    else
         printf("died");
}

执行resize函数后,myList无法获取新指针。我做错了什么?

1 个答案:

答案 0 :(得分:3)

你做

myList[0] = ...

但是myList是一个双指针,所以它应该是

(*myList)[0] = ...

另外,您尝试将多字符文字分配给结构。