用malloc分配到的内存是否一定为连续的呢?

解决方案 »

  1.   

    若分配成功的话,得到的内存块肯定是连续的、线性的。注意:两次 malloc 分配的内存的内存块不一定是相邻的,也就是说:第一次 malloc 分配了长 len1 的内存块,得到指针为 p1;第二次 malloc 分配了长 len2 的内存块,得到指针为 p2。以下等式成立的可能性很小:p2 == p1 + len1
      

  2.   

    malloc 分配的内存,其实中间总会有点空隙的. 那是保存这块内存的一些信息. 释放的时候会用到,所以如果你操作内存不小心破坏了它,释放的时候就会出现异常
      

  3.   

    to:yang79tao() ( ) 信誉:100 
    -----------------------------
    我不是说分配的音块内存中间有空隙.我是说两次分配的内存块之间必然会留下一些间隙的,保存内存块的一些信息,  头部,尾部都有一些标志