请问为什么会出现glibc detected *** free()?

youzlm 2010-11-12 02:57:10
*** glibc detected *** free(): invalid pointer: 0xb3e03280 ***

Aborted


要如何解决?
有的人说是GCC的版本。
有的说是没有分配空间就FREE
求解?
...全文
1995 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzlm 2010-11-13
  • 打赏
  • 举报
回复
非常感谢。。。检查代码去
bluejays 2010-11-12
  • 打赏
  • 举报
回复
这个会出现“invalid pointer”
int main()
{
int n;
free(&n);
}

这个会出现“double free”
int main()
{
int *p=malloc(1);
free(p);
free(p);
}
bluejays 2010-11-12
  • 打赏
  • 举报
回复
我刚试了这段代码,printf能输出一长串内容,getchar之后free的时候就出现了invalid next size的错误。
int main()
{
char *p = (char *)malloc(1);
strcpy(p, "aaaaaaaaaaaaaaaaaaaaaa");
strcat(p, "aaaaaaaaaaaaaaaaaaaaaa");
strcat(p, "aaaaaaaaaaaaaaaaaaaaaa");
strcat(p, "aaaaaaaaaaaaaaaaaaaaaa");
strcat(p, "aaaaaaaaaaaaaaaaaaaaaa");
printf("%s\n", p);
getchar();
free(p);
}
bluejays 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 youzlm 的回复:]
*** glibc detected *** free(): invalid next size (fast): 0xb3d44450 ***
Aborted
[/Quote]
内存越界了,free的时候出错。
比如,分配了1个字节的空间,写入100字节的内容,写入的时候未必会出错,但free的时候就会出这个错误。
youzlm 2010-11-12
  • 打赏
  • 举报
回复
*** glibc detected *** free(): invalid next size (fast): 0xb3d44450 ***
Aborted

那这个又代表什么?

多线程FREE要注意什么?

我只开3000多个就会出现这样的问题 。
cceczjxy 2010-11-12
  • 打赏
  • 举报
回复
有的说是没有分配空间就FREE
重复释放

检测你的程序

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧