#include
"dynamicarray.h"
//動態陣列初始化
dynamic_array*
init_array()
//插入
void
push_back_array
(dynamic_array* arr,
int value)
//插入新元素
arr->paddr[arr->size]
= value;
arr->size++;}
//根據位置刪除
void
removebypos_array
(dynamic_array* arr,
int pos)
arr->size--;}
//根據值刪除
void
removebyvalue_array
(dynamic_array* arr,
int value)
//查詢
intfind_array
(dynamic_array* arr,
int value)
}return pos;
}//列印
void
print_array
(dynamic_array* arr)
printf
("\n");
}//釋放動態陣列的記憶體
void
freespace_array
(dynamic_array* arr)
free
(arr);}
//清空陣列
void
clear_array
(dynamic_array* arr)
//獲得陣列容量
intcapacity_array
(dynamic_array* arr)
//獲得元素個數
intsize_array
(dynamic_array* arr)
//根據位置獲得某個位置的元素
intat_array
(dynamic_array* arr,
int pos)
#ifndef dynamic_array_h
#define dynamic_array_h
#include
#include
#include
typedef
struct dynamicarray
dynamic_array;
//初始化
dynamic_array*
init_array()
;//插入
void
push_back_array
(dynamic_array* arr,
int value)
;//根據位置刪除
void
removebypos_array
(dynamic_array* arr,
int pos)
;//根據值刪除
void
removebyvalue_array
(dynamic_array* arr,
int value)
;//查詢
intfind_array
(dynamic_array* arr,
int value)
;//列印
void
print_array
(dynamic_array* arr)
;//釋放動態陣列的記憶體
void
freespace_array
(dynamic_array* arr)
;//清空陣列
void
clear_array
(dynamic_array* arr)
;//獲得陣列容量
intcapacity_array
(dynamic_array* arr)
;//獲得元素個數
intsize_array
(dynamic_array* arr)
;//根據位置獲得某個位置的元素
intat_array
(dynamic_array* arr,
int pos)
;#endif
#include
#include
#include
#include
"dynamicarray.h"
void
test01()
printf
("陣列容量:%d\n"
,capacity_array
(myarray));
printf
("陣列大小:%d\n"
,size_array
(myarray));
//列印
print_array
(myarray)
;//刪除
removebypos_array
(myarray,0)
;removebyvalue_array
(myarray,27)
;//列印
print_array
(myarray)
;//查詢5個位置
int pos =
find_array
(myarray,5)
;printf
("5查詢到:pos:%d %d\n"
,pos,
at_array
(myarray,pos));
//銷毀
動態陣列的實現
靜態陣列 編譯階段確定陣列的大小,執行階段不能改變陣列大小。缺點是事先無法準確確定陣列的大小,太小不滿足處理需要,太大浪費記憶體空間。動態陣列 執行階段,根據實際需要動態確定陣列的大小。在 c 語言中,可利用記憶體的申請和釋放庫函式,c語言培訓班 以及指向陣列的指標變數可當陣列名使用的特點,來實現動...
實現動態陣列
學過c語言的都知道陣列的長度在定義陣列時時固定的,不能在程式執行時發生變化,那麼動態陣列是否和以上的定義相違背?動態陣列的實現步驟 1.先使用malloc函式申請乙個足夠大的位址空間,並返回乙個指標作為首位址 2.將原有陣列的元素按照順序複製到新的位址中 3.將帶加入的元素加入到新的位址中並且時放在...
VC動態陣列實現
vc 動態陣列實現 陣列型別的變數有三個重要的限制 陣列長度固定不變,在編譯時必須知道其長度,陣列只在定義它的塊語句內存在.實際的程式往往不能忍受這樣的限制 它們需要在執行時 動態地分配陣列.雖然陣列長度是固定的,但動態分配的陣列不必在編譯時知道其長度,可以 通常也是 在執行時才確定陣列長度.與陣列...