1. 程式人生 > >19 內存分配和釋放的函數

19 內存分配和釋放的函數

++ 調整 長度 分配 數據丟失 慎用 ron 動態內存 指針

1. malloc,calloc,realloc,free屬於C函數庫,而new/delete則是C++函數庫;

2. 多個-alloc的比較:

alloc:唯一在棧上申請內存的,無需釋放;

malloc:在堆上申請內存,最常用;

calloc:malloc+初始化為0;

realloc:將原本申請的內存區域擴容,參數size大小即為擴容後大小,因此此函數要求size大小必須大於ptr內存大小。

函數原型:void *calloc(size_t n, size_t size); 功 能: 在內存的動態存儲區中分配n個長度為size的連續空間,函數返回一個指向分配起始地址的指針
;如果分配不成功,返回NULL。
malloc,relloc,calloc,free是C語言的; new,delete是C++; relloc動態內存調整, 指針名=(數據類型*)realloc(要改變內存大小的指針名,新的大小)。 新的大小可大可小(但是要註意,如果新的大小小於原內存大小,可能會導致數據丟失,慎用!)

19 內存分配和釋放的函數