ホームページ >バックエンド開発 >C++ >C で動的にサイズ変更された配列を作成するにはどうすればよいですか?

C で動的にサイズ変更された配列を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 13:06:49159ブラウズ

How Can I Create a Dynamically Sized Array in C  ?

C の可変サイズ配列

C では、可変長の配列の初期化は許可されません。ただし、 G などの特定の実装では、この方法は拡張機能として許可されています。

int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

「tenorData」は初期化できない可変サイズのオブジェクトであるため、このコードはエラーになります。この問題を解決するには、配列サイズを数値リテラルとして指定できます。

double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

代替アプローチ

動的にサイズ変更された配列が本当に必要な場合は、C が提供します。いくつかのオプション:

  • ダイナミック メモリ割り当て: new および delete[] を使用した手動割り当て。
int n = 10;
double* a = new double[n];
// ...
delete[] a;
  • 標準コンテナ: std::vector のような標準コンテナを使用します。
int n = 10;
std::vector<double> a(n);

固定サイズ配列

可変サイズの配列が必要ない場合は、定数を使用して固定サイズの配列を作成できます。

const int n = 10;
double a[n];

または、C の constexpr を使用できます。 11:

constexpr int n()
{
    return 10;
}

double a[n()];

以上がC で動的にサイズ変更された配列を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。