- ベストアンサー
mallocの確保要素数の限界は?
C言語では、確か確保できる要素数が65536個までとか聞いたことがあります。ためしに、 #include <stdio.h> #define NUM 100000 int main(void){ unsigned char x[NUM]; x[NUM-1] = 200; printf("%d", x[NUM-1]); } のようなプログラムを作って、gccでコンパイルしたところ、問題なく動きました。しかし、処理系によっては動かないこともありえると思うのですが、私の理解は正しいでしょうか?もちろん、PCに装備しているメモリ容量以下、という前提です。 つまり、配列の要素数を65536個を超えて確保し、要素も65537以上の要素で指定したいのです。2次元でx[2][65536]とかやると、65537個の配列とかが作れないので、2次元確保はしたくないのです。mallocなら処理系に関係なく65536要素を超える配列の設定が可能なのでしょうか? この辺の知識があいまいなので、はっきり知っている方がいたら教えてもらえると助かります。 よろしくお願いします。 main文内で
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- asuncion
- ベストアンサー率33% (2127/6290)
回答No.2
- toda hiro(@hiro_knigh)
- ベストアンサー率39% (59/151)
回答No.1
お礼
なるほど、やはりそうでしたか。 portabilityを向上させるには、エラーチェックコードを入れた方がよいということですね。 ありがとうございました。