C言語で動的配列を初期化する方法は何ですか?
C言語で動的配列を初期化する方法は、malloc関数を使用してメモリを割り当て、配列の先頭アドレスをポインタ変数に割り当てることです。例のコードは以下の通りです:
#include <stdio.h>
#include <stdlib.h>
int main() {
int size;
printf("请输入动态数组的大小:");
scanf("%d", &size);
int *arr = (int*)malloc(size * sizeof(int));
if (arr == NULL) {
printf("内存分配失败\n");
return 1;
}
// 初始化数组
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 输出数组元素
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 释放动态数组内存
free(arr);
return 0;
}
上記のコードでは、まずscanf関数を使ってダイナミック配列のサイズをユーザーから入力します。次に、malloc関数を使用して、size * sizeof(int)のメモリスペースを割り当て、その先頭アドレスをint型のポインタ変数arrに代入します。その後、forループを使用して配列を初期化し、要素の値をインデックス+1に設定します。最後に、free関数を使ってダイナミック配列のメモリスペースを解放します。