詳解c語言用malloc函式申請二維動態陣列的例項
c語言在程式執行中動態的申請及釋放記憶體十分方便,一維陣列的申請及釋放比較簡單。
sample one
#include
int main()
是否申請二維動態記憶體也如此簡單呢?答案是否定的。申請二維陣列有一下幾種方法
sample two
/* 申請乙個5行3列的字元型陣列*/
char **p=null;int i;
p=(char ** )malloc(sizeof(c程式設計客棧har *)*5);
for(i=0;i<5;i++)
p[i]=malloc(sizeof(char)*3);
這種方式的優點是行和列都是可變的,但釋放時必須釋放多次,先釋放p[n],在釋放p
/*釋放記憶體*/
for(i=0;i<5;i++)
mwyidhpfree(p[i]);
free(p);
sample three
/*用指向陣列的指標的方式申請記憶體*/
char (*p)[3]=(char(*)[3])malloc(sizeof(char)*5*3)//p是乙個指向包含3個元素的陣列的指標
這種方式分配的記憶體只須釋放一次
free(p);
這種方式的缺點是顯而易見的,列是不可變的!
本文標題: 詳解c語言用malloc函式申請二維動態陣列的例項
本文位址: /ruanjian/c/209519.html
c語言 malloc函式詳解
談到malloc函式相信學過c語言的人都很熟悉,但是malloc底層到底做了什麼又有多少人知道。1 關於malloc相關的幾個函式 關於malloc我們進入linux man一下就會得到如下結果 也可以這樣認為 window下 原型 extern void malloc unsigned int n...
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...