我有一个结构:
struct Node{
struct Node* pointer[0];
int num;
} *current=NULL;
然后在函数中我试图创建子节点
void AddChild(struct Node *node) {
uint8_t n=2; // number of add children
for(uint8_t i=n; i-->0;){
struct Node* leaf=(struct Node*)malloc(sizeof(struct Node)); //allocate memory to child
struct Node* tmp=(struct Node*)realloc(node->pointer,(++node->num)*sizeof(struct Node*)); //reallocate memory for dynamic array mistake
if (!tmp)
printf("Error in memory alocation\n");
node->pointer[node->num]=leaf;
}
}
问题是 realloc 给了我错误。
realloc():无效指针:
因此,如果它是 c++,我可以创建一个向量并推回元素,但是使用 c 我需要重新分配指针数组。如何重新分配内存?