当我使用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
感谢您的帮助!现在我知道我的错误! –