我附上了一段代碼。我輸了很多。如果需要的話,我會附上更多:Segfault - 無效指針
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 ***
你似乎被切割了。你顯示的代碼不應該搞亂內存管理。您可能希望在調用'malloc()'和'free()'之間的'datapor'和'datap'上顯示每個操作。 – alk
valgrind valgrind valgrind! – Dariusz