m/y1p3vnSnTRtueiALX08qT158bTWeJDLbpczVRz0-t313D208hTbu2rhaslgwQJhneDV_0IYOdiwbdg" />图中右边为每次分配所得的地址之前8个字节的内容的16进制表示,从图中红线所表示可以看到,这8个字节中的第一个字节乘以8即得到相临两次分配时的距离,经过试验一次性分配更大的长度可知,第二个字节也是这个意义,并且代表高8位,也就说前面空的这8个字节中的前两个字节记录了一次分配内存的长度信息,后面的六个字节可能与空闲内存链表的信息有关,在翻译内存时用来提供必要的信息。这就解答了前面提出的问题,原来C/ C++(www.cppentry.com)在分配内存时已经记录了足够充分的信息用于回收内存,只不过我们平常不关心它罢了。 |