关于realloc的问题
每次使用realloc多申请一个sizeof(int)的空间。
=========================================
void
main()
{
int i;
int dataList[5] = {1, 2, 3, 4, 0};
int* numList = (int*)malloc(sizeof(int));
int* tempNumList = numList;
for(i = 0; i < 5; i++){
*tempNumList++ = dataList[i];
numList = (int*)realloc(numList, sizeof(int)); //xxx
}
printf("\n");
while(*numList != 0){
printf("%d ", *numList++);
}
}
=============================================
结果很奇怪:1, -33686019, 3, 4。
除了第二个数字以外其他都正常。
如果考虑realloc的第二个参数是‘增加到’的大小,那么xxx处改为sizeof(int)*(i+2)运行到第二个循环以后numList就会换位置。
请教各位,多谢!