Part 8.メモリレイアウト(1)

いま、UCS-2で32文字を格納するために64byteを確保したとしよう。
この確保されたバッファに本当に文字が32文字格納されている保証はどこにもない。
むしろ、そこにUCS-2で格納されている保証すらない。すべて0かも知れない。



typedef ushort UCS2;
UCS2 moji[32];


上のように書いてあれば、おそらくはUCS2が格納されているだろうが、その保証もどこにもない。しかし、上のように書いたときにindex out of boundsなどでこの領域が侵食されないことなどの仮定を行ない、「ここにはUCS2しか格納されていないのだ」と信じてプログラムすることは可能である。


そして、そのように信じることが大切なのだし、たいていの場合、そのように(自分の作ったルールを)信じてプログラミングを行なう。


(つづく)