遇到了一个像这样分配内存的代码:
int iPage_size = getpagesize ();
int iNeedSize = (iNeedSize + iPage_size - 1) & ~(iPage_size - 1);
void* iBuffer = memalign (iPage_size, iNeedSize);
1。那么为什么会有这样的不同:
void* iBuffer = malloc(iNeedSize);
2。我可以使用memalign
重新分配由realloc
分配的缓冲区吗?或者我是否需要首先free
并再次memalign
?
感谢。
P / s:以上代码片段取自在V4L2驱动程序设备上运行的代码。