请看,如果用malloc(n)来分配堆内存,那么分配的内存比n大,为什么呢?
0.malloc分配的内存不一定连续,所以需要header指针来链接各部分
1.实际分配的堆内存是Header + n结构。返回给用户的是n部分的首地址 所以他还有一部分内存是用来存header的,所以比原始的大
2.由于内存对齐值8,内存对其机制,实际分配的堆内存大于等于sizeof(Header) + n
请看,如果用malloc(n)来分配堆内存,那么分配的内存比n大,为什么呢?
0.malloc分配的内存不一定连续,所以需要header指针来链接各部分
1.实际分配的堆内存是Header + n结构。返回给用户的是n部分的首地址 所以他还有一部分内存是用来存header的,所以比原始的大
2.由于内存对齐值8,内存对其机制,实际分配的堆内存大于等于sizeof(Header) + n