Mut*_*pan 0 c memory memory-management
我需要分配4字节内存,分配的内存地址应该是4的倍数.例如:400,404,408,40c
如果我使用任何内存分配功能,我会收到可用的内存,地址不一定是4的倍数.
所以任何人都可以建议实现这个设计.
在Microsoft C/C++编译器中,您可以使用_aligned_malloc并在Linux posix_memalign中使用.
MSVC:
ptr = _aligned_malloc(4, 4);
Run Code Online (Sandbox Code Playgroud)
签名:
void * _aligned_malloc(size_t size, size_t alignment);
Run Code Online (Sandbox Code Playgroud)
Linux的:
posix_memalign(&ptr, 4, 4); // returns 0 if successful
Run Code Online (Sandbox Code Playgroud)
签名(与MSFT相比,注释顺序相反):
int posix_memalign(void **memptr, size_t alignment, size_t size);
Run Code Online (Sandbox Code Playgroud)