在mac上释放未对齐的指针

use*_*747 0 c

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

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

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

The*_*aul 6

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

但是,它是说你传递给free()一个不是来自malloc()的指针.这肯定是一个bug的标志,它可能发生在你所有的平台上.