不定長の配列を定義するには、C 言語でどのようにしますか?
C言語では、可変長の配列を定義するには、動的メモリ割り当てを使うことができます。具体的には、下記の手順で行います。
- int* arr;
- malloc()
- ネイティブな日本語で言い換えると
- arr = (int *)malloc(sizeof(int) * n);
- 私はこのシステムを絶対に使用するつもりはありません。
- arr[0] = 1
- arr[1] = 2;
- free
- arr を解放する
完全なサンプルコードを以下に示します.
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("请输入数组的长度:");
scanf("%d", &n);
int* arr;
arr = (int*)malloc(sizeof(int) * n);
if (arr == NULL) {
printf("内存分配失败");
return 1;
}
printf("请输入数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("数组元素为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
上記のサンプルでは、まずユーザーの入力から配列の長さを取得しています。そして、malloc関数を使って動的にメモリ領域を確保し、戻り値のポインタを配列ポインタ変数arrに代入しています。次に、ユーザーから配列の要素を入力し、配列の要素を出力しています。最後に、free関数を使ってメモリ領域を解放しています。