iPhone和Android上的内存对齐方式

7 c c++ memory iphone android

正如我从测试中发现的那样,iPhone的malloc有16字节对齐.但我不确定它是保证还是巧合.

所以问题是:在iOS和Android(NDK)上使用malloc()时保证的内存对齐是什么?

bbu*_*bum 6

在iOS上,正如您所发现的那样,对齐目前是16个字节.但是,这不能保证,也不能记录.即不要依赖它.

假设它在iOS上可用,则posix_memalign()允许分配特定对齐的内存.可能还有其他机制.

Android不是我的bailiwick.


Ano*_*mie 5

C中的malloc返回一个指向内存块的指针",它适合于任何类型的变量"; 即使对于相同OS的不同版本,也不保证该对齐是否将保持在16个字节.Objective-C实际上是基于C的,因此也应该适用于此.

如果您的Android NDK是用C或C++编写的,那么同样适用.

  • 嗯,我希望我知道为什么有人投了这票.评论,人! (3认同)