- 427 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:29:23 ]
- >>415
isalpha()に「0〜UCHAR_MAX または EOF 以外の値」が渡された時の動作は未定義 ということはわかっているのかね。きじねこは不可解な動作やらクラッシュという表現をしてるが 例えばstrにSJIS全角文字「A」(コード0x8260)を含んでいたとして(str="Aabc123"とか) forループ内でisaplha()に、0x82、0x60と渡されていくことになるが、 例えばcharが符号付きでint型が32ビットの処理系だと0x82→0xffffff82と 符号拡張で変換されるから「0〜UCHAR_MAX または EOF 以外の値」となって未定義となる unsigned charにキャストしとけば「0〜UCHAR_MAX または EOF」には納まる このきじねこの記事雑だな constや*忘れてる
|

|