1.當數組被聲明時,必須在編譯時知道它的長度。動態內存分配允許程序為一個長度在運行時才知道的數組分配內存空間。
2.malloc和calloc函數都用於動態分配一塊內存,並返回一個指定該塊內存的指針。
1>malloc的參數就是需要分配的內存的字節數。
2>calloc的參數是需要分配的元素個數和每個元素的長度。calloc函數在返回前把內存初始化為零。malloc函數返回時內存並未以任何方式進行初始化。
3>調用realloc函數可以改變一塊已經動態分配的內存的大小。增加內存塊大小有時有可能采取的方法是把原來內存塊上的所有數據復制到一個新的、更大的內存塊上。當一個動態分配的內存塊不再使用時,應該調用free函數把它歸還給可用內存池,內存釋放后便不能再被訪問。
3.如果請求的內存分配失敗,malloc、malloc和readlloc函數返回的將是一個NULL指針。
4.錯誤的訪問分配內存之外的區域所引起的后果類似越界訪問一個數組,但這個錯誤還能破壞可用內存池,導致程序失敗。
5.如果一個指針不是從早先的malloc、calloc或realloc函數返回的,它是不能作為參數傳遞給free函數的。
