以下のコードのように文字列定数の先頭アドレスを返して
関数呼び出し元で利用するのは問題ないでしょうか。
手元の環境(gcc 4.4.0)では"abc"と表示されました。

#include <stdio.h>

char *func() {
return "abc";
}

int main(void) {
puts(func());
return 0;
}