テーマ:プログラミングあれこれ(231)
カテゴリ:プログラミング
C#の配列の最大サイズについて調べてみましたので記事にしたいと思いますよ
正確にはC#というかdotNet での配列についてとなりますな 記事の内容は全てC#での確認をしておりますよ まずは仕様としては以下のようになっておりますよ gcAllowVeryLargeObjects 要素 バイト配列および 1 バイト構造体の配列の場合、単一次元の最大サイズは 2,147,483,591 (0x7FFFFFC7) です。 その他の型を含む配列の場合は 2,146,435,071 (0X7FEFFFFF) です。 Array クラス 配列のサイズは、合計 40 億個の要素に制限され、任意の次元の0X7FEFFFFFの最大インデックスに制限されます (バイト配列と 1 バイト構造体の配列の0X7FFFFFC7)。 ということですのでコード例としては以下のようになりますな Int32 maxArraySize4Byte = 0x7FFFFFC7; var array1 = new byte[maxArraySize4Byte]; Int32 maxArraySize = 0X7FEFFFFF; var arraylong1 = new long[maxArraySize]; 配列インデックスはこれが最大ですな。これ以上だと System.OutOfMemoryExceptionの例外がスローされますよ。 PCのメモリ搭載量とは関係ないですので注意が必要ですな この値はどちらも Int32.MaxValue(=2147483647)よりも小さいですから 以下はエラーになってしまうのですな var array1 = new byte[Int32.MaxValue]; var array1 = new long[Int32.MaxValue]; お気に入りの記事を「いいね!」で応援しよう
最終更新日
2022/04/26 03:27:23 PM
コメント(0) | コメントを書く
[プログラミング] カテゴリの最新記事
|
|