一般的に、C言語で宣言された配列のサイズは固定です。しかし、動的なメモリ割り当てを使用することで、実行時に配列のサイズを増やすことができます。
以下に、配列のサイズを増やす方法の一つを示します。
- 動的なメモリ割り当てを使用する方法:
- ポインタを使用して、メモリを動的に割り当てます。
realloc
関数を使用して、既存の配列のサイズを増やします。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *array;
int size = 5; // 初期の配列サイズ
// メモリを動的に割り当て
array = (int *)malloc(size * sizeof(int));
// 配列に値を設定
for (int i = 0; i < size; i++) {
array[i] = i + 1;
}
// 配列の内容を表示
printf("配列の
内容:
");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
// 配列のサイズを増やす
size = 10;
array = realloc(array, size * sizeof(int));
// 増やした部分に値を設定
for (int i = 5; i < size; i++) {
array[i] = i + 1;
}
// 増やした後の配列の内容を表示
printf("増やした後の配列の
内容:
");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
// メモリを解放
free(array);
return 0;
}
このコードでは、最初にmalloc
関数を使用して配列のメモリを割り当て、その後にrealloc
関数を使用して配列のサイズを増やしています。最後に、free
関数を使用してメモリを解放しています。
この方法を使うことで、C言語で配列のサイズを増やすことができます。ただし、メモリの動的な割り当てや解放には注意が必要です。十分なメモリが利用できない場合や、メモリの解放を忘れると、予期しない動作やメモリリークの原因になりますので、注意して使用してください。