建立動態陣列
我們在剛開始學陣列的時候大都會犯這麼一個小錯誤: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 動態建立一維陣列陣列
- 動態陣列陣列
- 靜態動態陣列陣列
- 2-7 陣列:動態陣列陣列
- List介面(動態陣列)陣列
- 手動實現ArrayList動態陣列陣列
- [JAVA] Java 陣列、多維陣列,動態、靜態初始化,陣列JVM記憶體模型分析Java陣列JVM記憶體模型
- shared_ptr和動態陣列陣列
- 演算法基礎:動態規劃陣列中滾動陣列的使用演算法動態規劃陣列
- 陣列的建立___MATLAB陣列Matlab
- JavaScript建立陣列求和JavaScript陣列
- mORMot 1.18 第13章 動態陣列ORM陣列
- AUTOCAD——拉伸陣列組合動態塊陣列
- ArrayList動態陣列物件 c# 1231陣列物件C#
- 動手編寫—動態陣列(Java實現)陣列Java
- cxgrid使用三問1cxgrid 如何動態建立列2cxGrid 透過欄位名取得列3cxGrid動態建立的列裡動態建立事件的方法事件
- C語言動態陣列小作業C語言陣列
- Python列表建立NumPy陣列Python陣列
- Solidity中函式返回值,靜態動態陣列Solid函式陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- C++基礎回顧4——動態陣列C++陣列
- DP 動態規劃入門 一維陣列動態規劃陣列
- 二維陣列動態開闢與傳參陣列
- Java陣列如何實現動態初始化Java陣列
- Numpy庫(一)- 陣列的建立陣列
- NumPy 基礎 (一) - 建立陣列陣列
- Kotlin建立二維Int陣列Kotlin陣列
- 笨辦法學C 練習34:動態陣列陣列
- 使用陣列建立分頁資料陣列
- 靜態佇列,迴圈陣列實現佇列陣列
- C++容器巢狀實現動態二維陣列C++巢狀陣列
- 建立包含N個空物件的陣列物件陣列
- C++ 使用 new 建立二維陣列C++陣列
- Solidity語言學習筆記————14、動態位元組陣列Solid筆記陣列
- 動態規劃使用一維陣列要注意的問題動態規劃陣列
- RDLC 動態列
- JavaScript 推薦直接量建立陣列或者物件JavaScript陣列物件
- JavaScript二進位制陣列建立注意點JavaScript陣列