gpt4 book ai didi

c - 免费功能失败

转载 作者:行者123 更新时间:2023-11-30 21:17:33 35 4
gpt4 key购买 nike

我正在 Linux 中编写一个简单的程序。其目的是显示 GNU 版本号。但似乎 free() 函数对我大喊大叫。当我执行程序时。它显示以下内容:

* `./a.out' 中的错误:munmap_chunk():无效指针:0x00007fa89f028d8a *

以及回溯和内存映射。

下面是我的代码:

# include <stdio.h>
# include <gnu/libc-version.h>
# include <string.h>
# include <stdlib.h>

int main(void){
const char *s;
s = (const char *)malloc(16*sizeof(char));
s = gnu_get_libc_version();
printf("%s\n",s);
free((char *)s);
return 0;
}

最佳答案

当您使用 gnu_get_libc_version 的返回值重新初始化 s 时,您就丢失了 malloc 返回的指针。您现在正尝试释放gnu_get_libc_version返回的指针,该指针尚未由malloc分配。

在调用gnu_get_libc_version之前不需要malloc,调用之后也不需要free

关于c - 免费功能失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460987/

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