c語言在程式執行中動態的申請及釋放記憶體十分方便,一維陣列的申請及釋放比較簡單。
sample one
#include int main()
是否申請二維動態記憶體也如此簡單呢?答案是否定的。申請二維陣列有一下幾種方法
sample two
/* 申請乙個5行3列的字元型陣列*/
char **p=null;int i;
p=(char ** )malloc(sizeof(char *)*5);
for(i=0;i<5;i++)
p[i]=malloc(sizeof(char)*3);
這種方式的優點是行和列都是可變的,但釋放時必須釋放多次,先釋放p[n],在釋放p
/*釋放記憶體*/
for(i=0;i<5;i++)
free(p[i]);
free(p);
sample three
/*用指向陣列的指標的方式申請記憶體*/
char (*p)[3]=(char(*)[3])malloc(sizeof(char)*5*3)//p是乙個指向包含3個元素的陣列的指標
這種方式分配的記憶體只須釋放一次
free(p);
這種方式的缺點是顯而易見的,列是不可變的! 詳解C語言用malloc函式申請二維動態陣列的例項
詳解c語言用malloc函式申請二維動態陣列的例項 c語言在程式執行中動態的申請及釋放記憶體十分方便,一維陣列的申請及釋放比較簡單。sample one include int main 是否申請二維動態記憶體也如此簡單呢?答案是否定的。申請二維陣列有一下幾種方法 sample two 申請乙個5行...
C語言malloc函式
malloc 標頭檔案 include 原型 void malloc size t size 引數說明 size為需要分配的記憶體空間大小,單位是byte 函式說明 在堆區分配一塊size byte大小的記憶體空間,用於存放資料,這塊記憶體空間被分配後不會被初始化,因此這些記憶體空間對應的值是未知的...
C語言之malloc函式
from msdn 百科 原型 void malloc unsigned int size include或 include malloc的全稱是memory allocation,中文叫動態記憶體 分配,當無法知道記憶體具體位置的時候,想要繫結真正的記憶體空間,就需要用到動態的分配記憶體。mall...