質問: char str[256]の256の意味は? よく入門者などにchar str[256]という記述があります。 この256という数字には何か特別な意味があるのですか? 勿論2の8乗から来ているのでしょうが。 charって1バイト=8ビット=256ですよね。 str[256]というのを良く見かけるので、最初strは最大256個しか確保できないと思っていました。 でも、実際は1000でも良いのですよね。 ということで、どうして256という数字を使うのですか? 意味ありげな数字を使われると、初心者は混乱するので100とか200とかの方が良いと思うのですが。 特別な理由があるのでしょうか?
回答: メモリ空間にstrの場所が確保される際、計算機によって異なると思いますが、例えば32bitおきに32bitからなる"箱"が用意されます。ここでchar型を8bitと仮定するとstr[256]には、32bitの箱が64個、用意されます。 ところがstr[250]などと書いた場合、箱は63個用意されますが、最後の1箱に関し、16bitだけ余ってしまい、メモリ資源の無駄使いのような感じになってしまいます。まぁ、今の時代、メモリは安いのであまり問題にならないと思いますが、この無駄を防ぐために2のべき乗を僕は使うことがしばしばです。 でも確かに256なんて半端な数です。しかし16進数で書けばchar str[0x100]です。なんとも美しいと思いませんか?