const char *p
これだと、文字列は不変でも、ポインタ自体が入れ替わる可能性があることを
考えれば、
const char a[]
こっちの方がガードは堅い気もする…