詳解C語言用malloc函數(shù)申請二維動態(tài)數(shù)組的實例
更新時間:2017年10月31日 11:42:13 作者:趙子蒼
這篇文章主要介紹了詳解C語言用malloc函數(shù)申請二維動態(tài)數(shù)組的實例的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
詳解C語言用malloc函數(shù)申請二維動態(tài)數(shù)組的實例
C語言在程序運行中動態(tài)的申請及釋放內存十分方便,一維數(shù)組的申請及釋放比較簡單。
Sample one
#include <stdio.h> int main() { char * p=(char *)malloc(sizeof(char)*5);//申請包含5個字符型的數(shù)組 free(p); return 0; }
是否申請二維動態(tài)內存也如此簡單呢?答案是否定的。申請二維數(shù)組有一下幾種方法
Sample two
/* 申請一個5行3列的字符型數(shù)組*/ char **p=NULL;int i; p=(char ** )malloc(sizeof(char *)*5); for(i=0;i<5;i++) p[i]=malloc(sizeof(char)*3);
這種方式的優(yōu)點是行和列都是可變的,但釋放時必須釋放多次,先釋放p[n],在釋放p
/*釋放內存*/ for(i=0;i<5;i++) free(p[i]); free(p);
Sample three
/*用指向數(shù)組的指針的方式申請內存*/ char (*p)[3]=(char(*)[3])malloc(sizeof(char)*5*3)//p是一個指向包含3個元素的數(shù)組的指針
這種方式分配的內存只須釋放一次
free(p);
這種方式的缺點是顯而易見的,列是不可變的!
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
一篇文章帶你實現(xiàn)C語言中常用庫函數(shù)的模擬
這篇文章主要介紹了C語言中常用庫函數(shù)的模擬,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09C++面試八股文之如何實現(xiàn)strncpy函數(shù)
strncpy函數(shù),主要用做字符串復制,將于字符從一個位置復制到另一個位置,那么如何實現(xiàn)一個strncpy函數(shù),下面小編就來和大家簡單講講吧2023-07-07