1
我想知道为什么malloc总是分配一个大小为24 + 16n字节的内存区域?为什么malloc分配的内存大小是(24 + 16n)个字节?
在下面的代码无论BUFSIZE,通过malloc_usable_size报告的分配大小等于24 + 16的倍数,例如:24,40,56,72 ...
#include <cstdlib>
#include <malloc.h>
#include <iostream>
#define BUFSIZE 20
using namespace std;
int main(int argv, char** argc)
{
char * buf = static_cast<char *> (malloc(BUFSIZE));
size_t bufsize = malloc_usable_size(buf);
cout << "malloc_usable_size (buf) = " << bufsize << endl;
return 0;
}