結構可變陣列

2021-07-15 19:49:13 字數 1460 閱讀 5012

/*開拓空間*/

array array_create(int init_size)

該段**用malloc來為結構體裡面的陣列指標分配乙個我們需要的空間,然後把位址分配給結構體裡面的array

為array結構體分配乙個空間並返回乙個array型別

用於主函式裡面array結構體型別直接複製;

/*恢復空間,清空記憶體*/

void array_free(array

*a)

運用free函式清空array指標占用的記憶體,並且把位址改為null,和size置為0;我們一般用這個結構體裡面的size表示陣列大小

/*封裝為了後期公升級*/

int array_size(const array *a)

我們使用直接讀取結構體的size獲取陣列使用了多少;當然我們也可以用a->array++的方式來判斷是否為』\0』判斷;

/*返回在index上的指標.為了後期給當前陣列寫入數值*/

/*如*array_at(&a,0)=10,把a->array[0]=10

*/int* array_at(array *a, int

index)

return &(a ->array[index]);

}

返回結構體a->array[index]的指標,便於對a->array的值進行修改

在裡面做了乙個判斷空間是否足夠的條件如果不夠的話則繼續進行增長

每次增長都為block_size的整數倍,(index/block_size+1)block_size-a->size)先求出傳進來的index在那個區間區間大小得到該區間的最大值減去當前的a->size得到要增長的空間。

/*增長空間*/

void array_inflate(array *a, int more_size)

/*釋放空間*/

free(a->array);

/*把a.array指向分配的空間*/

a->array = p;

a->size += more_size;

}

結構陣列大小變換,增長空間。主要是利用把現在的指標陣列a->array的位址指向乙個新分配的空間。

int main()

for (int i = 0; i < cnt; i++)

while (1);

return

0;}

引用網易雲課堂《c語言程式設計高階》–翁愷 5.1-3

C STL deque可變陣列

deque資料應該很多,這裡不多所了,直接一點上程式吧!include include include include 用於distance deque模板,deque迭代器 using namespace std stl deque 是乙個動態陣列,與vector類似 可在開頭與末尾插入 刪除資料...

Object C 中的可變陣列和不可變陣列

在oc中,我們用 nsarray 類 和 nsmutablearray 類來表示陣列,其中,nsarray 類 是 nsmutablearray 類的父類。在oc中,我們陣列是有序的 物件 的集合,即我們的陣列只能儲存 物件 在oc中我們的陣列中元素型別不能是 int float cgpoint 等...

可變陣列學習整理

一 可變陣列的定義 1.可變陣列 可變陣列是指可以對陣列進行增刪查改的陣列。2.可變陣列與陣列之間的關係 可變陣列是陣列的子類。3.可變陣列的定義 1 可變陣列的初始化方式 nsmutablearray array nsmutablearray alloc init 2 新增可變陣列元素的方法 方法...