• ベストアンサー

callocの最大確保サイズについて…

こんにちは 久しぶりにここに来ましたが… それで、callocを使ってメモリの動的確保をする部分をプログラムに入れましたが、 現在私が使用しているLSI C-86 試食版というコンパイラで、 ヘッダファイルを見ると、callocの何個確保確保するかに当たるsize_t型が typedef unsigned size_t; と定義されています。 sizeof(size_t)で確認してみると、2バイト(16ビット)ということがわかりましたが、すると、 callocで最大が65536個分しか確保できないということになるはずでして… とりあえずソースファイルの一番最初に以下の4行を追加してみましたが実行すると見事にエラーが出ました^^; #ifndef __SIZE_T_DEFINED #define __SIZE_T_DEFINED typedef unsigned long size_t; #endif コンパイラによってはsize_t型が違うかもしれませんが… できれば64kb以上のメモリ確保をしたいので、何かいいアイデア(ライブラリ関数等)があれば暇なときにでもご教授お願いします。 長々となりましたが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

LSI-C86試食版はスモールモデル専用のコンパイラです。 プログラムコード領域とデータ領域それぞれ64Kバイトを超えるプログラムを作成することは出来ません。 製品版のLSI-C86ならLargeモデル(コード/データ合計1Mバイトまで)が利用できます。

K_1_2_10
質問者

お礼

スモールモデルまでというのは聞いていましたが… 何か他のコンパイラを使おうと思います。 ありがとうございました。

その他の回答 (1)

noname#4252
noname#4252
回答No.1

farmalloc は使えないのでしょうか? MS-DOS で使うのでなければ他のコンパイラを使用した方がいいと思います。

K_1_2_10
質問者

お礼

farmallocというライブラリ関数は ヘッダファイルの中を探してみましたが無いようです。 そうですね、MS-DOSで使うわけではないので、 他のコンパイラを使おうかなと思います。

専門家に質問してみよう