C語言用malloc函式申請二維動態陣列

2021-06-21 14:36:36 字數 725 閱讀 6050

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...