[過去ログ] 【アリス】system4.0【御用達】 (563レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
318(2): 2007/11/07(水)22:25 ID:aH1Zfske(2/2) AAS
 ふと思いついて、 
 if(szX != szA){asY[nL] = szX;return asY[nL];}  
 を 
 if(szX != szA){asY.Erase(nL);asY.Insert(nL, szX);return asY[nL];}  
 としたらエラーはなくなったんだが、 
 これは>313、ライブラリ作者さん共に正しい動作になってるか? 
319(1): 2007/11/07(水)23:13 ID:xpaYlRaB(1) AAS
 >>317-318 
 どうも有り難うございます。エラー箇所は分かったのですが、 
 何故エラーになるのかがどうしても分かりません。 
  
 >>318 
 まことに申し訳ないのですが、正しい動作になりません……。 
 第二引数に何を入れてもマウンテンデューが返ってくるようです。 
 「intなら大丈夫」というのはこういうことです。 
  
 //テスト 
 void game_main(void) 
 { 
 ans_t MS; 
  
 //MS.nSet("keyword",100); 
 //MS.nSet("keyword",200); 
 //N(MS.nGet("keyword"));A;//正常な動作だと200が出力 
  
 MS.ssSet("keyword","じむ"); 
 MS.ssSet("keyword","がんたんく"); 
 S(MS.ssGet("keyword"));A;//正常な動作だと"がんたんく"が出力 
 } 
  
 nSetはans_tのメソッド、SNumとほぼ同等のメソッドです。 
 ssSetはans_tのメソッド、SStringとほぼ同等のメソッドです。 
 SNumとSStringの違いは、int配列に入れるかstring配列に入れるかというだけで、 
 操作はほとんど同じです。 
  
 しかしnSet(上のコメントアウトしている方)は正常に動作し、 
 下のssSetの方は単独では前述のエラーメッセージが出ます 
 (コメントアウトを外し、先にnSetの方を動かすとssSetの方も正常に動きます) 
 どうしてこんな違いが出るのかに大混乱です。 
320(1): 318 2007/11/08(木)19:54 ID:mXVUOzqf(1) AAS
 あ、InsertはPushBackしないのか。 
 >318の修正を 
 if(szX != szA){asY.Insert(nL, szX);asY.Erase(nL+1);return asY[nL];}  
 にしてみて。 
 修正前は文字列を直接置き換えてたっぽいから、 
 新しい文字列をその位置に挿入した後、後ろに一つずれた以前の文字列を削除するようにしてみた。 
  
 >319でもエラーは出ないし、 
 RPGの方も「無人」とか「勇者」とか出るようになったからちゃんと動いてるとは思う。 
  
 原因はわかんない。 
 stringの配列要素に直接代入するところが特殊仕様かもしれないけど、 
 ちゃんと動くこともあるからSystem4.0のバグなのかなぁ。 
 エラーが出るときもそうでないときも 
 デバッガに出るans_t変数の現在値は変わらないように見えるし。 
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.023s