レビューソフト・アプリWEBサービスデジモノ本イベントレポートブログダウンロードこのサイトについて問い合わせ【C++】char配列をフォーマット指定で書き込むときの注意とあるC++ソースの不具合を調査をしていたところ、おかしな動きをしている箇所があった。ret;こんな感じのソースで、retの値に「’12345678’」が入ることを期待していたんだけど、変な値で返ってくる...。サンプルソースで書いてしまえば一目瞭然なんだけど、実際のソースはもっと複雑なのと、SDLチェックも外されていたので、原因に気付くまで時間がかかった。原因は文字列の終端文字分のサイズが考慮されていないことC言語やC++では、文字列に「終端文字」と呼ばれる「\0」(ヌル文字)を最後に付ける必要がある。最大8文字入る変数は、プラス終端文字分でサイズを9用意する必要がある。しないと、文字列の終端が捉えられず、正しいデータを取得できなくなってしまう。"12345678";のように、サイズを省略して指定した場合、9扱いとなる。Output48中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。ベンチャー企業の営業、大手企業のPG・SEを経て、独立。現在はとある企業のCTOと、変な名前の会社の社長をしてる。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。