超巨大配列の確保

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オカピー2

超巨大配列の確保

#1

投稿記事 by オカピー2 » 13年前

コード:

TCHAR List[500][80]=
{
TEXT("022型"),
TEXT("03式中距離対空誘導弾"),
TEXT("2S1 グヴォージカ"),
TEXT("2S3 アカーツィア"),
TEXT("2S6M ツングースカ"),
TEXT("2S7 ピオーン"),
TEXT("59式130mm加農砲"),
TEXT("63式軽戦車"),
TEXT("69式戦車"),
TEXT("73式装甲車"),
TEXT("74式戦車"),
TEXT("75式自走榴弾砲"),
TEXT("83式自走砲"),
TEXT("85式装甲車"),
TEXT("86式歩兵戦車"),
TEXT("87式自走高射機関砲"),
TEXT("87式偵察警戒車"),
TEXT("88式戦車B"),
TEXT("88式対空自走砲"),
TEXT("88式地対艦誘導弾"),
TEXT("89式自走ロケット"),
TEXT("89式装甲戦闘車"),
TEXT("89式対戦車自走砲"),
TEXT("90式戦車"),
TEXT("92式ATGW "),
TEXT("96式戦車"),
TEXT("96式装輪装甲車"),
TEXT("96式多目的誘導弾"),
TEXT("97式歩兵戦車"),
TEXT("99式軽戦車"),
TEXT("99式自走榴弾砲"),
TEXT("99式戦車"),
TEXT("9A52スメルチ"),
TEXT("9K31 ストレラ1"),
TEXT("9K33 オーサ"),
TEXT("9K330 トールM1"),
TEXT("9K35 ストレラ10"),
TEXT("9K37 ブークM1"),
TEXT("9K51 グラード"),
TEXT("9K51グラード"),
TEXT("9P140 ウーラガン"),
TEXT("A-10サンダーボルトⅡ"),
TEXT("AAV-7A1"),
TEXT("AC-130U スプーキー"),
TEXT("AH-1 コブラ"),
TEXT("AH-1W スーパーコブラ(制空)"),
TEXT("AH-1W スーパーコブラ(対地)"),
TEXT("AH-64 アパッチ"),
TEXT("AH-64D ロングボウアパッチ"),
TEXT("AIFV"),
TEXT("AMX(対艦)"),
TEXT("AMX(対地)"),
TEXT("AMX-10RC"),
TEXT("AMX-30"),
TEXT("AMX-30GCT AU-F1"),
TEXT("AS-565 パンサー(対艦)"),
TEXT("AS-565 パンサー(対潜)"),
TEXT("ATACMS"),
TEXT("B-1 チェンタウロ"),
TEXT("B-52 ストラトフォートレス"),
TEXT("BMP-1"),
TEXT("BMP-2"),
TEXT("BMP-3"),
TEXT("BRDM-2"),
TEXT("BTR-60"),
TEXT("BTR-80"),
TEXT("CN国戦闘工兵"),
TEXT("CN国歩兵"),
TEXT("EE-11 ウルツ"),
TEXT("EE-9 カスカベル"),
TEXT("EU国戦闘工兵"),
TEXT("EU国歩兵"),
TEXT("F/A-18 スーパーホーネット(制空)"),
TEXT("F/A-18ホーネット (制空)"),
TEXT("F/A-18ホーネット(対艦)"),
TEXT("F/A-18ホーネット(対地)"),
TEXT("F-1(対艦)"),
TEXT("F-1(対地)"),
TEXT("F-14 トムキャット"),
TEXT("F-15 イーグル(制空)"),
TEXT("F-15 イーグル(対地)"),
TEXT("F-15C(制空)"),
TEXT("F-15C(対地)"),
TEXT("F-15E ストライクイーグル(制空)"),
TEXT("F-15E ストライクイーグル(対地)"),
TEXT("F-15J イーグル(制空)"),
TEXT("F-15J イーグル(対地)"),
TEXT("F-15J改 イーグル"),
TEXT("F-15K(制空)"),
TEXT("F-15K(対艦)"),
TEXT("F-15K(対地)"),
TEXT("F-16 ファルコン(制空)"),
TEXT("F-16 ファルコン(対地)"),
TEXT("F-16C ファルコン(制空)"),
TEXT("F-16C ファルコン(対地)"),
TEXT("F-16I スファ(制空)"),
TEXT("F-16ファルコン(制空)"),
TEXT("F-16ファルコン(対地)"),
TEXT("F-2(対艦)"),
TEXT("F-2(対地)"),
TEXT("F-22 ラプター"),
TEXT("F-2改"),
TEXT("F-4 ファントムⅡ(制空)"),
TEXT("F-4 ファントムⅡ(対地)"),
TEXT("F-4EJ改 ファントムⅡ(制空)"),
TEXT("F-4EJ改 ファントムⅡ(対地)"),
TEXT("F-5E タイガーⅡ(制空)"),
TEXT("F-5E タイガーⅡ(対地)"),
TEXT("HIMARS"),
TEXT("JA-37 ヤクトビゲン(制空)"),
TEXT("JA-37 ヤクトビゲン(対地)"),
TEXT("JAS-39 グリペン"),
TEXT("JP国戦闘工兵"),
TEXT("JP国歩兵"),
TEXT("K1"),
TEXT("K1A1"),
TEXT("K2"),
TEXT("K200A1"),
TEXT("K21"),
TEXT("K242A1"),
TEXT("K263"),
TEXT("K30 飛虎"),
TEXT("K9"),
TEXT("Ka-27 へリックス"),
TEXT("Ka-50 ホーカム"),
TEXT("KM900"),
TEXT("KR国戦闘工兵"),
TEXT("KR国歩兵"),
TEXT("KSAM 天馬"),
TEXT("L70"),
TEXT("LAV-25"),
TEXT("LAV-AD"),
TEXT("LAV-AT"),
TEXT("M109"),
TEXT("M109A6 パラディン"),
TEXT("M110"),
TEXT("M113"),
TEXT("M113TOW"),
TEXT("M1A1 エイブラムス"),
TEXT("M1AI エイブラムス"),
TEXT("M2 ブラッドリー"),
TEXT("M-46"),
TEXT("M48A5K"),
TEXT("M60"),
TEXT("M901ITV"),
TEXT("ME国戦闘工兵"),
TEXT("ME国歩兵"),
TEXT("Mi-17 ヒップH(攻撃)"),
TEXT("Mi-17 ヒップH(占領)"),
TEXT("Mi-24 ハインド"),
TEXT("Mi-28 ハボック"),
TEXT("MiG-21 フィッシュベッド(制空)"),
TEXT("MiG-21 フィッシュベッド(対地)"),
TEXT("MiG-23 フロッガー(制空)"),
TEXT("MiG-23 フロッガー(対地)"),
TEXT("MiG-25 フォックスバット"),
TEXT("MiG-27 フロッガー"),
TEXT("MiG-29 ファルクラム(制空)"),
TEXT("MiG-29 ファルクラム(対地)"),
TEXT("MiG-29S ファルクラム"),
TEXT("MiG-29SMT ファルクラム"),
TEXT("MiG-31 フォックスハウンド"),
TEXT("MLRS"),
TEXT("MT-LB"),
TEXT("P3C オライオン(対艦)"),
TEXT("P3C オライオン(対潜)"),
TEXT("PAH-1"),
TEXT("PGZ-95"),
TEXT("RJPz ヤグアル"),
TEXT("RS国戦闘工兵"),
TEXT("RS国歩兵"),
TEXT("S-125 ネバ"),
TEXT("S-300"),
TEXT("SA-330ピューマ(占領)"),
TEXT("SA-342 ガゼル"),
TEXT("Sa'ar4 レシェフ"),
TEXT("SH-60 シーホーク"),
TEXT("SH-60K"),
TEXT("SIDAM25"),
TEXT("SPz-2ルクス"),
TEXT("Su-17 フィッター"),
TEXT("Su-24 フェンサー(対艦)"),
TEXT("Su-24 フェンサー(対地)"),
TEXT("Su-25 フロッグフット"),
TEXT("Su-27 フランカー"),
TEXT("Su-33 フランカー(制空)"),
TEXT("Su-33 フランカー(対地)"),
TEXT("Su-34"),
TEXT("T-55"),
TEXT("T-62"),
TEXT("T-72"),
TEXT("T-80U"),
TEXT("T-90"),
TEXT("TPz-1 フクス"),
TEXT("Tu-142 ベアF(対潜)"),
TEXT("Tu-16 バジャー(対艦)"),
TEXT("Tu-16 バジャー(爆撃)"),
TEXT("Tu-95 ベア(爆撃)"),
TEXT("Type143A ゲパルト"),
TEXT("Type212A"),
TEXT("Type214"),
TEXT("Type42 マンチェスター"),
TEXT("UH-1 イロコイ(攻撃)"),
TEXT("UH-1 イロコイ(占領)"),
TEXT("UH-60 ブラックホーク(攻撃)"),
TEXT("UH-60 ブラックホーク(占領)"),
TEXT("UHT ティーガー(対地)"),
TEXT("US国戦闘工兵"),
TEXT("US国歩兵"),
TEXT("V-75"),
TEXT("VCAC HOT メフィスト"),
TEXT("VCC-1 カミリーノ"),
TEXT("WZ-551 "),
TEXT("ZRK-SD カブ"),
TEXT("ZSU-23-4 シルカ"),
TEXT("アーレイバーク"),
TEXT("アーレイバーク フライト ⅡA"),
TEXT("アイオワ"),
TEXT("アクラ"),
TEXT("あさぎり"),
TEXT("あたご"),
TEXT("アトランティック"),
TEXT("アベンジャー"),
TEXT("アル・ヴァンド"),
TEXT("ヴァージニア"),
TEXT("ヴィーゼルTOW-A1"),
TEXT("ウダロイ"),
TEXT("オーサ"),
TEXT("おやしお"),
TEXT("オリバー・ハザード・ペリー"),
TEXT("カサール"),
TEXT("カマン"),
TEXT("キロ"),
TEXT("クリヴァク"),
TEXT("ゲパルト"),
TEXT("ゲパルト改"),
TEXT("こんごう"),
TEXT("ザクセン"),
TEXT("サルヴァトーレ・ペロシ"),
TEXT("シーウルフ"),
TEXT("ジャギュア"),
TEXT("ジョルジュレイグ"),
TEXT("スーパーリンクス"),
TEXT("スターストリーク"),
TEXT("ストライカーATGM"),
TEXT("ストライカーMGS"),
TEXT("スラヴァ"),
TEXT("ソブレメンヌイ"),
TEXT("タイコンデロガ"),
TEXT("たかなみ"),
TEXT("タランタル"),
TEXT("チーフテン"),
TEXT("チャパラル"),
TEXT("チャレンジャー"),
TEXT("チャレンジャー2 "),
TEXT("トーネードADV"),
TEXT("トーネードF.3"),
TEXT("トーネードIDS(対艦)"),
TEXT("トーネードIDS(対地)"),
TEXT("トンダール"),
TEXT("ナイキ・ハーキュリーズ"),
TEXT("ネウストラシムイ"),
TEXT("ノックス"),
TEXT("はたかぜ"),
TEXT("はつゆき"),
TEXT("はやぶさ"),
TEXT("はるしお"),
TEXT("はるな"),
TEXT("ブラウンシュバイク"),
TEXT("プレヴェゼ"),
TEXT("ブレーメン"),
TEXT("ペトリオット"),
TEXT("ホーク"),
TEXT("ホーク改"),
TEXT("マルダー"),
TEXT("ミラージュ2000(制空)"),
TEXT("ミラージュ2000(対艦)"),
TEXT("ミラージュ2000(対地)"),
TEXT("ミラージュF-1(制空)"),
TEXT("ミラージュF-1(対地)"),
TEXT("むらさめ"),
TEXT("メルカバⅡ"),
TEXT("メルカバⅢ"),
TEXT("ラーダ"),
TEXT("ラファールD"),
TEXT("ラファイエット"),
TEXT("リュビ"),
TEXT("ルクレール"),
TEXT("レイピア"),
TEXT("レオパルト2"),
TEXT("ローラント"),
TEXT("ロスアンゼルス"),
TEXT("ロメオ"),
TEXT("蔚山"),
TEXT("漢"),
TEXT("強撃5型(対艦)"),
TEXT("強撃5型(対地)"),
TEXT("九龍"),
TEXT("元"),
TEXT("広開土大王"),
TEXT("広州"),
TEXT("杭州"),
TEXT("江衛"),
TEXT("紅箭"),
TEXT("轟炸6型(対艦)"),
TEXT("轟炸6型(爆撃)"),
TEXT("水轟5型"),
TEXT("世宗大王"),
TEXT("忠武公李舜臣"),
TEXT("張保皐"),
TEXT("直昇9型(攻撃)"),
TEXT("直昇9型(占領)"),
TEXT("直昇9型C"),
TEXT("東風11号"),
TEXT("武直10型(対地)"),
TEXT("北京212/無反動砲"),
TEXT("旅海"),
TEXT("旅大"),
TEXT("旅滬"),
TEXT("殲撃10型(制空)"),
TEXT("殲撃10型(対地)"),
TEXT("殲撃7型(制空)"),
TEXT("殲撃8型Ⅱ(制空)"),
TEXT("殲撃8型Ⅱ(対地)")};
と、このように超巨大TCHAR型配列を確保したわけですが、スタックを圧迫していたらしく、スタックオーバーフローがきてコンパイラがへそを曲げてしまいました。
コンパイラのご機嫌をとるためにはnew演算子で確保すればいいという話を聞いたんですが、newでは配列は初期化できないらしいです
どうしたらいいでしょう?教えてください!
コンパイラの名前はVC++ 2008です!助けてェ!

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: 超巨大配列の確保

#2

投稿記事 by beatle » 13年前

オカピーさんはちょくちょく名前を変えているようですが、それはフォーラムルールに違反していますからやめてください。

さて、巨大な配列をスタックに確保するのはできませんが、グローバル領域になら確保可能です。グローバル変数として確保しましょう。多分これが一番ラクな方法です。

もしくは、テキストファイルなどに初期値を格納しておいて、newで確保した配列にそのファイルから読み取ったデータを格納すればいいでしょう。

オカピーα
記事: 120
登録日時: 13年前

Re: 超巨大配列の確保

#3

投稿記事 by オカピーα » 13年前

コメントありがとうございます
今アカウントを登録しました。これからは「オカピーα」で生きていきます。

グローバル領域に確保した所、無事コンパイラの機嫌が直りました!
本当にありがとうございます
C,C++,C#,これらを極めることを「3C政策」と言う

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 超巨大配列の確保

#4

投稿記事 by softya(ソフト屋) » 13年前

名前の変更と毎回新しいトピックを立てることは避けて頂ければ幸いです。
それと前のトピックが残っていますので前のトピックは閉鎖させて頂きます。
ただし、前のトピックでみけCATさんの指摘が放置されていますので、こちらで返答をお願いします。

思い通りの結果が得られたら投稿時に解決!チェックのボックスのチェックをお願いします。

閉鎖しました。
「なぜかエラー(WIN32 API) • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=9803
「Stack overflowエラーが起きる • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=9809
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

オカピーα
記事: 120
登録日時: 13年前

Re: 超巨大配列の確保

#5

投稿記事 by オカピーα » 13年前

みけCATさんへの返答

return TRUE;によってbreak;と同じ効果が得られると思ったのは間違いでしょうか?
一応break;を入れてビルドしましたが変わらずです
CloseHandle(hFile);は書いてあります
C,C++,C#,これらを極めることを「3C政策」と言う

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 超巨大配列の確保

#6

投稿記事 by みけCAT » 13年前

return TRUE;→IDOKとIDCANCEL以外のIDのコントロールから通知が来た時に下に行ってしまいそうです。
そのようなケースがあるかわかりませんが。
CloseHandle(hFile);→見落としです。すみません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

オカピーα
記事: 120
登録日時: 13年前

Re: 超巨大配列の確保

#7

投稿記事 by オカピーα » 13年前

なんかもうぶっちゃけ泥沼にハマって抜け出せないんで
バックアップ取ってある1つ前に戻ってやり直します(つまりあきらめるという事)><;
みけCATさんありがとうございました
C,C++,C#,これらを極めることを「3C政策」と言う

閉鎖

“C言語何でも質問掲示板” へ戻る