変数が使用できるメモリの制限 – プログラミング – Home

変数が使用できるメモリの制限
 
通知
すべてクリア

[解決済] 変数が使用できるメモリの制限


chiaki.t
 chiaki.t
(@chiaki.t)
ゲスト
結合: 22年前
投稿: 18
Topic starter  

はじめまして、chiaki.tと申します。
プログラム中の変数が使用できるメモリの制限について質問させて下さい。
MFCのDocumentクラスに使用している変数で、大量(400ヶ位)(?)のCStringを
追加して使用したところ、その追加した内容の一部が以前からあるCStringの
変数に上書きされてしまいました。
このようなことはメモリの制限から起きるものなのでしょうか?
CString特有の制限から起きるものなのでしょうか?
何かアドバイス頂けるものがあれば、よろしくお願いします。
環境 Win2000 VC6.0 SP5 MFC


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

まず上書きしているコード(&その付近)を示してはどうでしょうか?
現在の情報だけですと、chiaki.tさんのコードが悪いのか
CStringが悪いのか判断できません
コードを書いたら、そのコード付近の動作や状態についても書いてください


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

おそらくメモリ不足ではなく、
不正な領域に書き込んでいるのが原因だと思います。

例えば、次のような原因が考えられます。
・CStringをLPCTSTRに変換して、その領域に強引に書き込んでいる
・CString::GetBufferで得られたポインタに、指定した長さよりも長い文字列を書き込ん
でいる
・不正なCStringポインタを使っている


返信引用
chiaki.t
 chiaki.t
(@chiaki.t)
ゲスト
結合: 22年前
投稿: 18
Topic starter  

kuさん、dairygoodsさん ご指摘ありがとうございました。
ご指摘通りのタイプミスによる配列範囲外への代入でした。

CString Opvar[3][2][16];
Opvar[2][1][10]=_T(xxx); -> Opvar[2][11][10]=_T(xxx);

頭を冷やして見直して見つかりました。
これに懲りずまたよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました