我在附上一个片段。我写了很多东西。如果需要,我会附上更多:
unsigned char *datap = malloc (MAXSIZE);
unsigned char *datapor = datap;
//Here Im cutting a lot
while( (direntp = readdir(dirp)) != NULL)
{
datap = datapor;
}
//this line gives me exception
free(datap);
gcc显示:
*** glibc detected *** /home/xf/xf/unzipper: free(): invalid pointer: 0x00002aaaab0b0108 ***
最佳答案
在while循环中重新分配datap
,因此当调用free
时,datap
不再指向分配的内存。
(我假设datapor
的值在省略的代码中发生变化。)
关于c - 段错误-无效的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21756772/