【发布时间】:2014-12-16 19:58:43
【问题描述】:
对于链表上的学校作业,我正在编写我通过此结构的二叉树实现的人员数据库:
typedef struct TPeople {
TPeople * m_Parent_1;
TPeople * m_Parent_2;
int m_ID;
char * m_Name;
} TPEOPLE;
我用代码创建数组:
int allocated = 20;
TPEOPLE * data = (TPEOPLE*) calloc(allocated, sizeof (TPEOPLE));
并重新分配:
allocated *= 2;
data = (TPEOPLE*) realloc(data, allocated * sizeof (TPEOPLE));
memset(data + allocated /2,0,allocated/2 * sizeof (TPEOPLE));
因为每个人都会有一段时间没有孩子,所以我将它们存储在数组中,否则我不会再次找到它们。
但是问题来了,因为数组的默认大小不足以容纳它们。但是当我重新分配数组时,所有这些父指针都指向已释放内存中的旧位置。
如何解决这个问题?
感谢 Rfilip
【问题讨论】:
-
能否请您发布您的分配和数组声明部分。