動態陣列
阿新 • • 發佈:2020-07-29
遵循原則
→ 在建立的時候從外層往裡層,逐層建立;
→ 釋放的時候從裡層往外層,逐層釋放。
構建所需函式
函式原型 | 返 回 | 功能說明 |
void *malloc(unsigned int size); | 成功:返回所開闢空間首地址 失敗:返回空指標 | 向系統申請 size位元組的堆空間 |
void *calloc(unsigned int num, unsigned int size); | 成功:返回所開闢空間首地址 失敗:返回空指標 | 按型別申請num個size位元組的堆空間 |
void free(void *p); | 無返回值 | 釋放p指向的堆空間 |
void *realloc(void *p,unsigned int size); | 成功:返回新開闢空間首地址 失敗:返回空指標 | 將p指向的堆空間變為 size |
(詳細見:https://www.runoob.com/w3cnote/c-dynamic-array.html)
eg:建立一維陣列
#include <stdio.h> #include <stdlib.h> int main() { int n1,i; int *array; printf("請輸入所要建立的一維動態陣列的長度:"); scanf("%d",&n1); array=(int*)calloc(n1,sizeof(int)); for(i=0;i<n1;i++) { printf("%d\t",array[i]); } printf("\n"); for(i=0;i<n1;i++) { array[i]=i+1; printf("%d\t",array[i]); } free(array);//釋放第一維指標 return 0; }
結果如下
轉自