C語言陣列的動態分配記憶體和靜態分配記憶體

2021-10-04 15:15:01 字數 843 閱讀 6477

在日常的程式設計中,我們難免會用到陣列,很多時候由於靜態開闢陣列空間,導致很多空間浪費又或是空間不足,那麼這時候就需要用到動態開闢陣列記憶體。下面就介紹這兩種初始化陣列的方式:

//直接用數字

int arr[10];

//用巨集定義define

#define maxsize

int arr[maxsize];

//用const

const int size = 10 ;

int arr[size];

//一維陣列

int arr = ;

//字元陣列

字串陣列初始化:

//陣列長度為3,沒有'\0'

char arr0 = ;

//陣列長度為4 ,有'\0'

char arr1 = ;

//陣列長度為4,字串後面自動補上 '\0'

char arr2 = "c++";

//size 可以由使用者輸入

int *arr = (int *)malloc(sizeof(int)*size);

//row 和 col 可以由使用者輸入

int **array = (int **)malloc(sizeof(int)*row);

for(i = 0; i < row; i++)

array[i] = (int *)malloc(sizeof(int)*col);

以此類推…

以上就是這動靜兩種方式去初始化陣列,在日常的程式設計中,可以根據需要選擇合適的開闢記憶體的方式。

順序結構的動態分配和靜態分配

使用的是 dev 書本是 嚴蔚敏的資料結構 王道考研中的順序表的靜態分配 include define maxsize 10 最大長度 初始定義值 define ok 1 define error 0 define overflow 2 typedef int status 靜態儲存 typedef...

C語言動態分配記憶體

動態開闢記憶體的函式 void malloc size t size 這個函式向記憶體申請 塊連續可 的空間,並返回指向這塊空間的指標 如果開闢成功,則返回 個指向開闢好空間的指標 如果開闢失敗,則返回 個null指標,因此malloc的返回值 定要做檢查 返回值的型別是 void 所以malloc...

靜態分配記憶體和動態分配記憶體

首先,在使用動態分配記憶體技術前,必須明白自己在做什麼,這樣做與其它的方法有什麼不同,特別是會產生哪些負面影響,天下沒有免費的午餐。動態分配記憶體與靜態分配記憶體的區別 1 靜態記憶體分配是在編譯時完成的,不需要占用cpu資源 動態分配記憶體是在執行時完成的,動態記憶體的分配與釋放需要占用cpu資源...