私の環境は以下のとおりです
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- C言語・C++・C# Microsoft visual studioはインストールだけであれば無料でしょうか? また、vi 2 2022/04/03 21:24
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- C言語・C++・C# 「using Windows」でエラーが出る 3 2022/12/23 19:53
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
C# 配列の変数宣言について。
-
配列を使わずに、変数名を動的...
-
unsigned char配列への入力の仕方
-
C言語で特定列だけを抽出して配...
-
先頭アドレスとは何ですか?
-
ExcelVBAで質問です。離れた二...
-
VB.NET 構造体の配列の検索機能...
-
配列で格納したものをmsgboxで...
-
C言語の配列番号が"0"から始ま...
-
配列の参照渡しで型が一致しま...
-
メモリの初期値
-
VBでC言語のポインタみたい...
-
C# Listを使わずに2次元配列の...
-
C++ vectorに配列をプッシュしたい
-
intel fortranコンパイラについて
-
銀行ATMの数字キーの配列
-
配列をEraseしてもメモリが開放...
-
C言語で巨大配列を作るにはどう...
-
なぜ配列は0から始まるのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
先頭アドレスとは何ですか?
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
テキストファイルから文字列を...
-
配列の参照渡しで型が一致しま...
-
ExcelVBAで質問です。離れた二...
-
unsigned char配列への入力の仕方
-
VBで構造体の配列を関数に渡す...
-
C++ vectorに配列をプッシュしたい
-
C言語で特定列だけを抽出して配...
-
Excel、VBAのユーザーフォーム...
-
複数の選択範囲の行番号を個別...
-
配列をEraseしてもメモリが開放...
-
配列を含む構造体の初期値について
-
【速いブラインドタッチ】手を...
-
C言語 配列の再初期化
-
Redimした動的配列はEraseする...
おすすめ情報