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

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

Linda Hamilton
リリース: 2025-01-05 13:06:49
オリジナル
131 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート