【发布时间】:2013-06-26 19:33:40
【问题描述】:
当我使用malloc() 分配内存时,free() 函数出现问题。
程序运行时,会产生分段错误。我生成了程序的核心转储。当我使用 gdb 时,它在对 free() 的调用中显示段错误。
这是我的代码:
char * temp_filename;
temp_filename = (char *) malloc(50);
temp_filename = strrchr(package->_local_filename, '/');
strcat(package->_cache_filename, temp_filename);
free(temp_filename);
我无法弄清楚我的错误。有没有人帮我找出我的错误? 谢谢 *抱歉,代码错误,现在可以了*
【问题讨论】:
-
您不会在 malloc 和 free 之间的任何地方使用
temp_filename。你确定这就是你所有的相关代码吗? -
另外,你确定在线上没有发生段错误吗?当
package->cache_filename没有为自己指向足够的分配内存加上temp_filename_dest的长度时,strcat可能会出现段错误。 -
感谢你们的帮助!现在我知道我的错误了!
标签: c segmentation-fault malloc free