C語言中動態陣列操作實踐

2021-06-16 23:03:35 字數 2071 閱讀 2553

#include#include//包含了malloc函式

#include//包含了exit函式

//定義了乙個資料型別,該資料型別的名字為struct array

struct array

;//函式宣告

void initarr(struct array * parr, int length); //初始化

bool insertelement(struct array * parr, int position, int value); //插入元素,position從1開始

bool deleteelement(struct array * parr, int position, int * pvalue);//刪除

int getelement(struct array * parr, int position); //獲取相應位置元素,positon從1開始

bool isempty(struct array * parr); //是否為空

bool isfull(struct array * parr); //是否已滿

void sortarr(struct array * parr); //氣泡排序

void showarr(struct array * parr); //顯示內容

void inversionarr(struct array * parr); //倒置

int main(void)

else

printf("刪除失敗!\n");

showarr(&arr);

//呼叫倒置陣列的函式

inversionarr(&arr);

printf("倒置後陣列元素為:\n");

showarr(&arr);

//呼叫氣泡排序的函式

sortarr(&arr);

printf("排序後的陣列元素為:\n");

showarr(&arr);

getchar();

return 0;}/*

*初始化陣列的函式

*/void initarr(struct array * parr, int length)

else //如果記憶體分配成功,就初始化陣列

return; }/*

*輸出陣列中的所有元素的函式

*/void showarr(struct array * parr)

else //如果陣列不為空 }

/* *判斷陣列是否為空的函式

*/bool isempty(struct array * parr)

/* *判斷陣列是否已滿的函式

*/bool isfull(struct array * parr)

/* *在陣列末尾追加元素的函式

*//*

*向陣列中插入元素的

*/bool insertelement(struct array * parr, int position, int value)

//插入值

parr->pbase[position-1] = value;

parr->cnt++;

return true;}/*

*刪除陣列中指定位置處的元素

*/bool deleteelement(struct array * parr, int position, int * pvalue)

parr->cnt--;

return true;}/*

*將陣列元素倒置的函式

*/void inversionarr(struct array * parr)

return;}/*

*氣泡排序的函式

*/void sortarr(struct array * parr)

} }}/*

*獲取指定位置元素的函式,positon從1開始

*/int getelement(struct array * parr, int position)

C語言中動態陣列的實現

c語言中陣列直接申請,int a 10 是存放在棧上。棧是被系統嚴格管理胡,故陣列的大小一經申請便無法再被修改。因此,動態陣列需要在堆中才能實現,使用malloc,calloc等函式在系統中開闢所需的記憶體空間,接收返回的位址作為陣列的首位址 頭指標 在用迴圈即可進行動態陣列的初始化。注 動態陣列需...

C語言中實現陣列的動態增長

原理 在c語言中陣列下標訪問可以看成指標的偏移訪問 1 對錶進行檢查,看看它是否真的已滿 2 如果表確實已滿,使用realloc 函式擴充套件表的長度,並進行檢查,確保realloc 操作成功進行。3 在表中增加所需要的專案 code int current element 0 int total ...

C語言中動態分配陣列

很多人在編寫c語言 的時候很少使用動態陣列,不管什麼情況下通通使用靜態陣列的方法來解決,在當初學習c語言的時候我就是乙個典型的例子,但是現在發現這是乙個相當不好的習慣,甚至可能導致編寫的程式出現一些致命的錯誤。尤其對於搞嵌入式的人來所,嵌入式系統的記憶體是寶貴的,記憶體是否高效率的使用往往意味著嵌入...