ホームページ > バックエンド開発 > C++ > 動的メモリ割り当てを使用せずに C で実行時サイズの配列を宣言するにはどうすればよいですか?

動的メモリ割り当てを使用せずに C で実行時サイズの配列を宣言するにはどうすればよいですか?

DDD
リリース: 2024-12-20 14:08:17
オリジナル
675 人が閲覧しました

How Can I Declare a Run-Time Sized Array in C   without Dynamic Memory Allocation?

動的割り当てを使用しない実行時の配列サイズ: C99 の革新

C では、実行時に決定されるサイズで配列を宣言するという概念がしばしば懸念を引き起こします。 。しかし、最近奇妙なコード スニペットに出会ったことで、「動的割り当てを使用せずに配列を宣言しながら、実行時にサイズを指定するにはどうすればよいでしょうか?

次の C コードを考えてみましょう:

int main(int argc, char **argv)
{
    size_t size;
    cin >> size;
    int array[size];
    for (size_t i = 0; i < size; i++)
    {
        array[i] = i;
        cout << i << endl;
    }

    return 0;
}
ログイン後にコピー

GCC などのコンパイラーは、可変サイズの配列を可能にする C99 の機能を採用しています。この革新的な機能により、実行中に決定できるサイズで配列をスタック上で宣言できるようになります。ただし、new や malloc による動的割り当てとは異なり、可変サイズの配列は、固定サイズの配列を宣言するのと同様に、スタック上にメモリを割り当てます。

可変サイズの配列は、動的割り当てを避けるため、動的割り当てよりもパフォーマンス上の利点があります。ヒープメモリ管理のオーバーヘッド。スタックにメモリを割り当てることで、これらの配列はメモリの断片化の可能性を減らし、プログラムのパフォーマンスを向上させます。

この機能は C99 に固有のものであり、古いバージョンの C 言語ではサポートされていないことを強調することが重要です。したがって、可変サイズの配列に依存するコードが見つかった場合は、ストレージ サイズのエラーを避けるために、必ず C99 準拠のコンパイラでコンパイルしてください。

以上が動的メモリ割り当てを使用せずに C で実行時サイズの配列を宣言するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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