char *data[]={"aaa","bbb","ccc"}というようにすると
char型へのポインタの配列を定義したことになりますよね?
data[0]には"aaa"へのポインタ、data[1]には”bbb”へのポインタというように。

この場合、この文字列"aaa"ってのは、実際にメモリ上にデータ領域が確保されてるんでしょうか?
この場合、あくまでポインタの定義であって、文字列の領域も確保されているのかよく分かりません。
それともし確保されているなら、この定義をグローバルで行った場合
プログラム終了まで文字列の記憶領域の保証はされるのでしょうか?