不定長の配列を定義するには、C 言語でどのようにしますか?

C言語では、可変長の配列を定義するには、動的メモリ割り当てを使うことができます。具体的には、下記の手順で行います。

  1. int* arr;
  2. malloc()
  3. ネイティブな日本語で言い換えると
  4. arr = (int *)malloc(sizeof(int) * n);
  5. 私はこのシステムを絶対に使用するつもりはありません。
  6. arr[0] = 1
  7. arr[1] = 2;
  8. free
  9. 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関数を使ってメモリ領域を解放しています。

bannerAds