#include < stdio.h>
int main(void){
    char str[3];
    str[0] = 'a';
    str[1] = 'b';
    str[2] = 'c';
    printf("%s\n", str);
    return 0;
}

実行結果
abc

このコードはchar型配列str[3]を宣言し、str[0]に'a'を、[1]に'b'
を、[2]に'c'を格納しています。
しかし、この文字列strには終端'\0'が存在しないので、正しい実行結果は得られないはずなのですが、このコードは abc を返しました。このプログラムはいかにして文字列の終端を読み取ったのでしょうか?