詳解C語言用malloc函式申請二維動態陣列的例項

2022-10-04 00:30:25 字數 767 閱讀 2111

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