我在附上一个片段。我写了很多东西。如果需要,我会附上更多:

 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/

10-13 08:31