gpt4 book ai didi

c - free() 上的段错误指向 char* 的指针

转载 作者:行者123 更新时间:2023-12-02 21:58:36 25 4
gpt4 key购买 nike

当我使用 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);

我无法弄清楚我的错误。有人帮助我找出我的错误吗?谢谢*抱歉,代码中出现错误,现在可以了*

最佳答案

您用指向您正在搜索的其他字符串的指针覆盖分配的指针:

temp_filename = (char *) malloc(50);
temp_filename = strrchr(package->_local_filename, '/');

然后,您错误地释放了该指针,因为它不再是 malloc() 返回的指针:

free(temp_filename);

要修复此问题,请删除分配和释放的代码。

char * temp_filename;
temp_filename = strrchr(package->_local_filename, '/');
strcat(package->_cache_filename, temp_filename);

关于c - free() 上的段错误指向 char* 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com