在mac上释放未对齐的指针

时间:2010-10-29 19:36:51

标签: c

我在Mac上运行程序时遇到此问题; linux 64和32位都很好,但在mac上我得到了一堆:

*** malloc[437]: error for object 0xbfffe970:
Non-aligned pointer being freed (2) 

在我的程序执行结束时,我在数据结构中释放了一堆指针。代码很长,但有没有人知道为什么它没有错误在linux上工作但不是mac?

3 个答案:

答案 0 :(得分:6)

可能只是一个不同的malloc实现。据推测,Mac malloc与更大的边界对齐,所以它发现你传递给free的指针不正确,因为它有错误的对齐

然而,它是说你传递给free()一个不是来自malloc()的指针。这肯定是一个错误的迹象,它可能发生在你所有的平台上。

答案 1 :(得分:0)

我在Mac OS X 10.7上遇到了同样的错误。在我的情况下,这是因为我malloc'ed零字节。

答案 2 :(得分:0)

我经历过这个,因为我没有使用分配器来创建一个char数组,当我创建它时只包含一个元素。它适用于所有其他情况,但是当使用一个char的数组创建CoreFoundation数组时。