>>84
staticな記憶域に確保されるので、プログラム終了までちゃんとある。
ただし、同じ文字列が出てきたら、アドレスも重なってる可能性はある。

char *a[] = {"aaa", "xxxaaa"};

a[0]はひょっとしたらa[1]+3と同じアドレスを指しているかも知れない。