Arrays C指针动态分配
如何为结构数组指针动态分配内存。 我有一个大小为1024的结构数组指针,但是如果我需要增加它的大小,怎么做呢? 我需要动态定义arr大小。对于初始化,我将大小保持为1024。 我以后需要增加空间,当空间分配超过时,如何增加空间???。差不多Arrays C指针动态分配,arrays,pointers,dynamic,struct,Arrays,Pointers,Dynamic,Struct,如何为结构数组指针动态分配内存。 我有一个大小为1024的结构数组指针,但是如果我需要增加它的大小,怎么做呢? 我需要动态定义arr大小。对于初始化,我将大小保持为1024。 我以后需要增加空间,当空间分配超过时,如何增加空间???。差不多 struct foo *ptr; ptr = malloc(sizeof(*ptr) * 1024); // later struct foo *tmp = realloc(ptr, sizeof(*ptr) * 2048); if (tmp) {
struct foo *ptr;
ptr = malloc(sizeof(*ptr) * 1024);
// later
struct foo *tmp = realloc(ptr, sizeof(*ptr) * 2048);
if (tmp) {
ptr = tmp;
} else {
// something nasty happened
free(ptr);
exit(-1);
}
对于动态内存分配,使用使用链表实现的数组将有所帮助。 您可以使用
malloc()
函数为现有结构节点分配内存
如果希望结构对象中的数组增加其内存,则可以使用链表而不是结构中的数组 你能发布结构声明/定义吗?就像我有结构abc{};abc*arr[1024];现在我需要把arr[1024]改为2048,你不能这样做。您可以做的一件类似的事情是可变长度数组,但它仍然不相同。