ホームページ > バックエンド開発 > C++ > C 関数から 2D 配列を安全に返して管理するにはどうすればよいですか?

C 関数から 2D 配列を安全に返して管理するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-26 17:59:10
オリジナル
695 人が閲覧しました

How to Safely Return and Manage a 2D Array from a C   Function?

C の関数から 2D 配列を返す

C で 2D 配列を操作する場合、提供されているコードで示されているアプローチは、推奨。代わりに、次の関数の実装を検討してください。

int** create2DArray(unsigned height, unsigned width)
{
    int** array2D = 0;
    array2D = new int*[height];

    for (int h = 0; h < height; h++)
    {
        array2D[h] = new int[width];

        for (int w = 0; w < width; w++)
        {
            // Initialize array elements as needed
        }
    }

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

この関数は、目的の 2D 配列の高さと幅を符号なし整数として受け取り、それに動的にメモリを割り当てます。外側の配列が最初に割り当てられ、次に内側の配列がループ内で割り当てられます。

メモリ リークを防ぐために、使用後にメモリの割り当てを解除することを忘れないでください。これを行うには、要素をループし、内部配列と外部配列の両方を削除します。

使用例:

int height = 15;
int width = 10;
int** my2DArray = create2DArray(height, width);
// Use the array as needed
// ...
for (int h = 0; h < height; h++)
{
    delete [] my2DArray[h];
}
delete [] my2DArray;
my2DArray = 0; // Set pointer to null to prevent dangling pointer
ログイン後にコピー

以上がC 関数から 2D 配列を安全に返して管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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