建立動態陣列
我們在剛開始學陣列的時候大都會犯這麼一個小錯誤:int a[n],執行後就會出現bug,也就是說,C語言不允許對陣列的大小做動態定義。這個規則使得我們在解決一些問題的時候很不方便,動態的陣列就很好地解決了這一問題,下面就來看看動態陣列。
用到的函式:malloc(),free():
標頭檔案:#includ<malloc.h>;
malloc函式的引數為所需申請記憶體的大小:以位元組為單位;
malloc函式返回一個void*型別的地址,必須通過強制型別轉 換,才能賦值給特定的指標變數: n int * pint = (int *) malloc( ... );
用malloc函式生成各種型別的動態陣列,最好使用 “sizeof(型別名) * 動態陣列長度”形式確定分配記憶體的大小: n int * pint = (int *) malloc( sizeof(int) * 100 );
分配的記憶體不再使用時一定要釋放: free();
上程式碼:
建立動態一維字元陣列
#include<stdio.h>
#include<malloc.h>
int main()
{
int n, i;
char *a;
scanf("%d", &n);
getchar();
a = (char *)malloc(sizeof(char)*n);
for (i = 0; i < n; i++)
scanf("%c", &a[i]);
for (i = 0; i < n; i++)
printf("%c", a[i]);
free(a);
}
建立二維整形陣列:
#include<stdio.h>
#include<malloc.h>
int main()
{
int n,m,i, j;
int **a;
scanf("%d %d", &n,&m);
a = (int **)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
a[i] = (int *)malloc(sizeof(int)*m);
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
printf("%d ", a[i][j]);
printf("\n");
}
for (i = 0; i < n; i++)
free(a[i]);
free(a);
}
相關文章
- 陣列004 動態建立一維陣列陣列
- C++動態建立二維陣列,二維陣列指標,以及動態二維陣列函式傳遞C++陣列指標函式
- 動態陣列陣列
- 2-7 陣列:動態陣列陣列
- List介面(動態陣列)陣列
- C++中動態建立和刪除陣列(new 和delete)C++陣列delete
- 手動實現ArrayList動態陣列陣列
- [JAVA] Java 陣列、多維陣列,動態、靜態初始化,陣列JVM記憶體模型分析Java陣列JVM記憶體模型
- 動態陣列介紹----Delphi (轉)陣列
- 動態record陣列的應用陣列
- 演算法基礎:動態規劃陣列中滾動陣列的使用演算法動態規劃陣列
- shared_ptr和動態陣列陣列
- 動手編寫—動態陣列(Java實現)陣列Java
- FineUIMvc隨筆(1)動態建立表格列UIMVC
- JavaScript建立陣列求和JavaScript陣列
- 資料結構筆記整理和思考--動態陣列和靜態陣列的領悟資料結構筆記陣列
- C語言動態陣列小作業C語言陣列
- AUTOCAD——拉伸陣列組合動態塊陣列
- mORMot 1.18 第13章 動態陣列ORM陣列
- 陣列的建立___MATLAB陣列Matlab
- [php]陣列建立方式PHP陣列
- cxgrid使用三問1cxgrid 如何動態建立列2cxGrid 透過欄位名取得列3cxGrid動態建立的列裡動態建立事件的方法事件
- DP 動態規劃入門 一維陣列動態規劃陣列
- Java陣列如何實現動態初始化Java陣列
- C++基礎回顧4——動態陣列C++陣列
- 二維陣列動態開闢與傳參陣列
- c#之arraylist動態陣列小記(1)C#陣列
- Solidity中函式返回值,靜態動態陣列Solid函式陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- NumPy 基礎 (一) - 建立陣列陣列
- Numpy庫(一)- 陣列的建立陣列
- Python列表建立NumPy陣列Python陣列
- 快速建立空二維陣列陣列
- Linux Shell 建立序列陣列Linux陣列
- 笨辦法學C 練習34:動態陣列陣列
- ArrayList動態陣列物件 c# 1231陣列物件C#
- linux shell 動態生成 陣列系列 seq使用技巧Linux陣列
- Linux Shell 動態生成 陣列系列 Seq 使用技巧Linux陣列