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

标签 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");
}

在我的调整大小函数执行后,myList 无法获取新指针。我做错了什么?

最佳答案

你会

myList[0] = ...

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

(*myList)[0] = ...

此外,您尝试将多字 rune 字分配给结构。

关于C - 创建子函数以重新分配数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974249/

相关文章:

Javascript:如何从断点数组中呈现先前的断点

c - 用C编写的2D数组问题

javascript - 将数组中的元素插入后,它是空的

java - 对象数组未正确初始化

c - 为什么 &p 和 &a[0] 不同?

c - 使用 char 指针和整数指针

c - 分离用 system() 调用的链式命令

c - 错误 : conflicting types for ‘whatever’

c - 线程中的时间间隔

c++ - 在 C++ 中给定指向它的指针,查找 3-D vector 中元素的位置