當我使用malloc()
分配內存時,我遇到free()
函數的問題。segfault on free()指向char的指針*
程序運行時,會產生分段錯誤。我產生了一個程序的核心轉儲。當我使用gdb時,它在調用free()時顯示segfault。
這是我的代碼:
char * temp_filename;
temp_filename = (char *) malloc(50);
temp_filename = strrchr(package->_local_filename, '/');
strcat(package->_cache_filename, temp_filename);
free(temp_filename);
我無法弄清楚我的錯誤。有人幫我找到我的錯誤嗎? 感謝 * 對不起有關的代碼錯誤回報,現在是OK *
您不要在malloc和free之間的任何位置使用'temp_filename'。你確定這是你所有的相關代碼嗎? – Paulpro
另外,你確定segfault沒有發生在行嗎?當'package-> cache_filename'沒有爲自己指定足夠的分配內存以及'temp_filename_dest'的長度時,'strcat'可以發生段錯誤。 – Paulpro
感謝您的幫助!現在我知道我的錯誤! –