>>472
Unicodeの場合、2バイトで1文字を表現
�@�@�A�A�B�B�C�C�D�D�E�E�F�F�G�G�H�H で9文字、18バイト
ANSIの場合、
�@�A�B�C�D�E�F�G�H で9文字、9バイト
> sizeof(buf)/sizeof(TCHAR)
sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
sizeof(TCHAR)が指すのは1文字のバイト数、Unicodeなら2、ANSIなら1
そして stprintf_s の引数 sizeOfBufferはバイト数ではなく「格納する最大文字数」であること
引数がバイト数ならsizeof(buf)でいいけど、引数が文字数を求めているならsizeof(buf)ではおかしくなる
上の例で言えば、Unicodeは18バイト9文字で本来は9とするところを18と指定してしまうことになる
すると関数側はバッファが18文字分(バイトで32バイト)あると勘違いするわけでバッファオーバーフローを起こす
sizeof(buf)/sizeof(TCHAR) は18バイトの領域があって、それを1文字のバイト数で割って「9文字」ということ
C言語なら俺に聞け 163
■ このスレッドは過去ログ倉庫に格納されています
476デフォルトの名無しさん
2024/12/17(火) 00:02:56.65ID:KLd2kDAJ0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】福原遥(まいんちゃん)とサッカー日本代表の久保建英がまさかの電撃結婚★8 [爆笑ゴリラ★]
- 【簗農相記者会見】「道路予算は大幅カット」発言おおむね認める 「表現ぶりが誤解招いた」 ★2 [蚤の市★]
- 減らない「いきなりエイズ」…「骨太方針」で対策強化 市民団体は高額予防薬の負担軽を訴え [蚤の市★]
- 「次期マイナカード」導入延期の理由は「業者がいなかった」と古川俊治デジタル相 [蚤の市★]
- 1日500円生活で3食「フライドポテト」を食べ続けた少年の最期……病院から帰宅直後に突然死した理由 [おっさん友の会★]
- 「ロシアへの姿勢変えたのは日本」プーチン大統領 関係悪化は日本の責任との認識示す [煮卵★]
- 【悲報】報ステ、簗農水大臣が何をしでかしたのか分かりやすく15分でまとめてしまう [431136663]
- 10万円稼ぐ事の難しさ
- 【画像】小野田紀美「ルールと法を守る人しか日本にはいないという状況にしなければいけない」 [779857986]
- ジャップ 終わる
- 背骨折って入院中なんだが暇すぎる
- 【高市現実】🤖「 AIイラストや漫画が広まれば手描きのプロは3割しか残らない」 [454087802]