C語言中的可變長數組(也稱為動態數組)可以通過重新分配和復制數組的方式來擴容。具體步驟如下:
下面是一個簡單的示例代碼,展示如何擴容一個動態數組:
#include <stdio.h>
#include <stdlib.h>
int main() {
int initialCapacity = 5;
int *arr = (int *)malloc(sizeof(int) * initialCapacity);
int size = 0;
int capacity = initialCapacity;
// 添加元素到數組中
for (int i = 0; i < 10; i++) {
if (size == capacity) {
capacity *= 2;
arr = (int *)realloc(arr, sizeof(int) * capacity);
}
arr[size] = i;
size++;
}
// 輸出數組中的元素
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
// 釋放內存
free(arr);
return 0;
}
在上面的代碼中,當數組的大小達到容量時,我們通過realloc函數重新分配內存空間,將容量擴大為原來的兩倍。然后將新的元素添加到數組中,直到所有元素都添加完畢。最后,記得釋放動態數組的內存空間。