malloc(-1): windows 上会崩溃 linux上 不会崩溃
malloc(0): windows int*p=(int *)malloc(0) ;如果使用了这块内存eg: *p=1; 再free(p) ;就会崩溃
linux上 malloc申请 <=12字节的内存,都会分配出12字节大小的内存
malloc申请 >12字节的内存,分配的内存会在12d的基础上每次增加8字节;(X-12)%8==0
eg: malloc申请内存大小 系统分配内存大小
0 12
11 12
12 12
13 20
129 132
另外,windows上求分配内存大小用_msize();Linux上用malloc_usable_size(); 而不是sizeof(0或strlen();
_msize()为windows下检测堆上动态分配的内存块的大小
malloc_usable_size为LINUX下进行检测的函数。