パープルハット

※当サイトではGoogleアドセンス広告を利用しています

C言語 配列の動的変更(malloc)



mallocとは

  • C言語における配列の大きさはコンパイルと同時に決定する必要があるため、変数で大きさを決定することができないというデメリットがあります。
  • しかし、mallocという動的にメモリの割り当てを行える機能を使うことで、任意に大きさを変更することが可能になります。



使い方

mallocの使い方

int* a = malloc(sizeof(int) * n);

とすることで、変数aを要素数nのint型の配列として扱えます。


サンプル

  • stdlibをインクルードするのを忘れずに。

ソースコード

#include <stdio.h>
#include <stdlib.h>

int main() {

    // 入力
    int n = 5;

    // 配列の宣言
    int* a;
    
    // n個分の領域を確保
    a = malloc(sizeof(int) * n);

    // 配列の初期化
    for (int i = 0; i < n; i++) {
        a[i] = i;
    }

    // 配列の表示
    for (int i = 0; i < n; i++) {
        printf("a[%d] = %d\n", i, a[i]);
    }
    
    // 確保した領域を解放
    free(a);
    
    return 0;
}


実行結果

a[0] = 0
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4