我使用
Marshal.GlobalHAlloc
来分配内存,文档上说:“此方法公开了 Kernel32.dll 中的 Win32 LocalAlloc 函数。”GlobalAlloc
的文档说它将是 8 字节对齐的,但 LocalAlloc
没有说明对齐。比如说我要分配 1024 字节并确保它被 16 对齐。当我分配 1024+16 字节然后检查 pointer % 16 后是否为 0 时,这样做能够奏效吗?如果结果是 0 则表示内存已对齐,否则我只需增加指针以符合我的预期。问题是我不知道如果我有了对齐的指针,它是否真正对齐在物理内存中?