![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
私の環境は以下のとおりです
CPU x6800
メモリ 8GB
Vista 64 sp1
Visual studio 2005
やりたいことは、コマンドプロンプト[ > ] で
大きな配列 char dem[1000][1000][2000]
を使うCプログラムを作成し使用すること。
質問したいことは、
コマンドラインの環境設定(PATH: bin lib include)
コンパイラ リンカ の/オプション
はどのように設定したらよいのでしょうか。
現状は work.c のコンパイル+リンク で work.exe
はエラーなく成功するのですが
実行すると、{ work.exeは有効な win32 アプリケーションではありません。}
というエラーが出て実行できません。
配列の要素を2000->1000にすればもちろんエラーは出ません。
なおこのときのコマンドプロンプトは
Visual Studio 2005 x64 Win64 コマンド プロンプト
PATH は次のようになっています。
PATH=C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64;
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin\win64\amd64;
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin;
C:\Windows\Microsoft.NET\Framework64\v2.0.50727;
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCPackages;
C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;
C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools;
C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\bin;
C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin;
C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\
先達のご教示をお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
出来ません
64ビットネイティブバイナリのPE32+であってもメモリに展開後のサイズは2GBを超えられません(ファイルサイズではなく仮想メモリにメモリマッピングされた後のサイズです)
http://msdn.microsoft.com/ja-jp/library/3hs5w5e3 …
グローバル変数はEXE/DLLファイルの.dataセクションに突っ込まれますから他のと合わせて2GBを超えることになります
大きな配列は動的に確保してください
この回答への補足
dumm さま
教示いただいたとりにやってみます。
質問で書き落としましたが、
配列はグローバルにとっています(下記)。
char dem[1000][1000][2000];
int main()
{;}
この場合は実行しようとしたとき、エラーが出ます。
いっぽう、main の中でこの配列をとると、値を代入した時に
エラーとなります。
main の中で動的に確保しても代入の段階でエラーになると
あたまから決めてかかっていました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列で格納したものをmsgboxで...
-
配列を使わずに、変数名を動的...
-
メモリの初期値
-
配列をEraseしてもメモリが開放...
-
メモリと配列に関して
-
unsigned char の配列で途中で0...
-
パスカルの三角形
-
C# Listを使わずに2次元配列の...
-
VBで構造体の配列を関数に渡す...
-
配列の参照渡しで型が一致しま...
-
複数の選択範囲の行番号を個別...
-
VBで動的なメモリの確保
-
配列を含む構造体の初期値について
-
ExcelVBAで質問です。離れた二...
-
【VBS】 フォルダ直下のファイ...
-
【C言語】配列の中に配列を入れ...
-
C言語で特定列だけを抽出して配...
-
先頭アドレスとは何ですか?
-
アドレスの重複
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
先頭アドレスとは何ですか?
-
C言語で特定列だけを抽出して配...
-
配列の参照渡しで型が一致しま...
-
VBで構造体の配列を関数に渡す...
-
C++ vectorに配列をプッシュしたい
-
【速いブラインドタッチ】手を...
-
unsigned char配列への入力の仕方
-
配列をEraseしてもメモリが開放...
-
【C言語】配列の中に配列を入れ...
-
ExcelVBAで質問です。離れた二...
-
4勤2休のシフト作成
-
Functionの戻り値を2次元配列...
-
Redimした動的配列はEraseする...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
おすすめ情報