C言語で配列のサイズを増やす方法


一般的に、C言語で宣言された配列のサイズは固定です。しかし、動的なメモリ割り当てを使用することで、実行時に配列のサイズを増やすことができます。

以下に、配列のサイズを増やす方法の一つを示します。

  1. 動的なメモリ割り当てを使用する方法:
    • ポインタを使用して、メモリを動的に割り当てます。
    • 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言語で配列のサイズを増やすことができます。ただし、メモリの動的な割り当てや解放には注意が必要です。十分なメモリが利用できない場合や、メモリの解放を忘れると、予期しない動作やメモリリークの原因になりますので、注意して使用してください。