首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >malloc:*对象0x1029249b0的错误:未分配要释放的指针

malloc:*对象0x1029249b0的错误:未分配要释放的指针
EN

Stack Overflow用户
提问于 2013-09-22 06:37:03
回答 2查看 5K关注 0票数 1

我正在尝试在MacOSX10.6.8和Xcode3.2.6上编译一个包含-std=c++0x的程序。我使用自制软件将我的g++编译器升级到g++-4.7。在我的makefile中,我将代码行从:

代码语言:javascript
复制
CXX          = g++
CXXFLAGS     = -std=c++0x
LD           = g++
LDFLAGS      = -L.

至:

代码语言:javascript
复制
CXX          = g++-4.7
CXXFLAGS     = -std=c++0x
LD           = g++-4.7
LDFLAGS      = -L.

然而,这一行不起作用:

代码语言:javascript
复制
$(CC) -c -Icore/include/ -Ianalysis/include -Ieventbuilders/include -Isimdut/include -Istyle/include $(CXXFLAGS) $< -o $@

因此,我将其更改为:

代码语言:javascript
复制
$(CXX) -c -Icore/include/ -Ianalysis/include -Ieventbuilders/include -Isimdut/include -Istyle/include $(CXXFLAGS) $< -o $@

现在一切都可以编译了,但是当我运行我的文件时,我得到了以下错误:

代码语言:javascript
复制
tbmon(25203) malloc: *** error for object 0x1029249b0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap

有人能告诉我我做错了什么吗?提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2013-09-22 06:41:53

你在程序中有一个bug,它在一个指针上调用free(),而这个指针不是用malloc()获得的。或触发此行为的代码中的其他与内存相关的错误。

您提供的Make文件与此问题无关。你必须修改程序代码。

票数 1
EN

Stack Overflow用户

发布于 2013-09-22 06:42:12

假设只是将编译器从gcc更改为g++,应该不会导致free(3)失败。你能发布一个最小的例子来演示这个问题吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18938396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档