Hatena::Grouptopcoder

SRM diary(Sigmar)

SigmarのTopcoder SRM参加記録など雑記です。
社会人になってから競技プログラミングを始めました。どこまで行けるか分かりませんが合間を見つけてアルゴリズムの勉強をしています。

2010-07-29SRM477 Div1

stringのアクセス違反

| 01:44 | stringのアクセス違反 - SRM diary(Sigmar) を含むブックマーク はてなブックマーク - stringのアクセス違反 - SRM diary(Sigmar) stringのアクセス違反 - SRM diary(Sigmar) のブックマークコメント

SRM477 Div1 Easyで、stringのサイズを超えた添字アクセスをしても実行時エラーとならないことが不思議だったので、ローカルのVC++の環境とアリーナで、空のstring s対してs.capacity()とs[0]とs[1]を出力してみた

→VC++ -> s.capacity()=15、s[0]='\0'、s[1]の出力で「問題が発生したため、topcoder.exeを終了します」

→アリーナ -> s.capacity()=0、s[0]='\0'、s[1]='\0'

→VC++は、一応stringの最後に\0を入れてcの文字列のような形にしているんだろうか。

→アリーナは・・g++だっけ?capacityを超えたアクセスをすると\0を返すみたい

→結論としては、今回(SRM477 Div1 Easy)はどちらの環境でも1文字パディングを忘れたことでは(どんなテストケースでも)WAにはならないようです

トラックバック - http://topcoder.g.hatena.ne.jp/jackpersel/20100729