CString型での配列処理は出来ない? – プログラミング – Home

CString型での配列処理は出来ない...
 
通知
すべてクリア

[解決済] CString型での配列処理は出来ない?


マモ
 マモ
(@マモ)
ゲスト
結合: 23年前
投稿: 1
Topic starter  

CString型という便利な型をつかい、テスト的にプログラムを書いてみたところ
test[0]に値を代入する部分でエラーが出てしまいました。
CString型は配列にすることは無理なのでしょうか?
どなたかご教授ください。
ちなみにTest2の部分は通りました。(test[0]を削って実行)

CString test[5];
CString test2;

memset(test,NULL,sizeof(test));

test[0] = aaaaa;
test2 = bbbb;


引用未解決
トピックタグ
るるち
 るるち
(@るるち)
ゲスト
結合: 23年前
投稿: 4
 

memset(test,NULL,sizeof(test));

が余計だったようです!

CStringの初期化はまとめて出来ないのでしょうか?
(すべてNULL初期化したい)

一応解決です。


返信引用
ナオーバ
 ナオーバ
(@ナオーバ)
ゲスト
結合: 23年前
投稿: 187
 

解決してますが、

CStringの配列はCStringArrayでは駄目ですか?

CStringArray saTmp;
for(int i = 0; i < 10; i++) saTmp.Add(");

みたいにできますけど。


返信引用
EIJI
 EIJI
(@EIJI)
ゲスト
結合: 24年前
投稿: 76
 

えっと同一人物ですか?
混乱しますので少なくとも同一スレッドで使うハンドルはひとつにしましょう。

で、
>memset(test,NULL,sizeof(test));
なぜ、これが余計なのか分かりましたか?
どうもchar*とCStringを混同しているように思います。

>CStringの初期化はまとめて出来ないのでしょうか?
>(すべてNULL初期化したい)

CStringは作った時点で空っぽです。


返信引用
るるち
 るるち
(@るるち)
ゲスト
結合: 23年前
投稿: 4
 

ご回答ありがとうございます。
CStringArrayは便利ですね。使ってみようと思います。

ただCString型で1つ不思議な点があったので質問させてください。
1つの関数の中で

CString test[5];
test[0] = aaaaa;

とやる分には問題ないのですが
CString test[5];をクラスのメンバー変数に設定すると
デバッグで確認した際のtest[0]の値が、「CXX0072: Error: タイプ情報がないか認識でき
ません」
と出てしまいます。(別の値1~4も参照できず)
なぜなのでしょうか・・・?

名前に関しては以後気をつけます!


返信引用
EIJI
 EIJI
(@EIJI)
ゲスト
結合: 24年前
投稿: 76
 

>CString test[5];をクラスのメンバー変数に設定すると
>デバッグで確認した際のtest[0]の値が、「CXX0072: Error:
>タイプ情報がないか認識できません」
>と出てしまいます。(別の値1~4も参照できず)
>なぜなのでしょうか・・・?

ブレークしたときのスコープからそのメンバー変数を参照できないからです。
ブレークポイントをそのクラスのメンバ関数内においてみてください。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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