C語言中實現動態數組的方法主要有以下幾種:
示例代碼:
int* arr;
int size;
printf("請輸入數組大小:");
scanf("%d", &size);
arr = (int*)malloc(sizeof(int) * size); // 動態分配內存空間
if (arr == NULL) {
printf("內存分配失敗\n");
return 0;
}
// 使用arr指針訪問數組元素
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 釋放內存空間
free(arr);
示例代碼:
int* arr;
int size;
printf("請輸入數組大小:");
scanf("%d", &size);
arr = (int*)malloc(sizeof(int) * size); // 動態分配內存空間
if (arr == NULL) {
printf("內存分配失敗\n");
return 0;
}
// 使用arr指針訪問數組元素
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 重新分配內存空間
size += 5; // 擴展數組大小
arr = (int*)realloc(arr, sizeof(int) * size);
if (arr == NULL) {
printf("內存分配失敗\n");
return 0;
}
// 使用arr指針訪問擴展后的數組元素
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 釋放內存空間
free(arr);
示例代碼:
typedef struct {
int* arr;
int size;
} DynamicArray;
DynamicArray createArray(int size) {
DynamicArray dynamicArray;
dynamicArray.arr = (int*)malloc(sizeof(int) * size); // 動態分配內存空間
dynamicArray.size = size;
return dynamicArray;
}
void freeArray(DynamicArray dynamicArray) {
free(dynamicArray.arr); // 釋放內存空間
}
int main() {
int size;
printf("請輸入數組大小:");
scanf("%d", &size);
DynamicArray dynamicArray = createArray(size);
// 使用dynamicArray.arr指針訪問數組元素
for (int i = 0; i < dynamicArray.size; i++) {
dynamicArray.arr[i] = i + 1;
}
freeArray(dynamicArray);
return 0;
}
以上是實現動態數組的幾種方法,具體使用哪種方法可以根據實際需求和個人喜好選擇。