このコードを数回連続してコンパイルして実行すると、cc のアドレスが 0x0012FF5C としてレポートされます。しかし、foo で printf への 2 番目の呼び出しを使用してそのアドレスの文字列を出力しようとすると、"Hello" を出力する代わりにガベージが出力されます?? なんでそうなの??アドレスがアプリケーションのアドレス空間内にあることがわかっているときに、アドレスを引数として直接渡すと何が問題になりますか (少なくとも、PC を再起動しないか、多くのスペースを必要とし、原因となる他のアプリケーションを開始しない限り)アプリケーションがページアウトされる)??
void foo(char *cc[])
{
printf("%x\n",cc);
printf("%s\n",(char *)(0x0012FF5C));
}
int main()
{
char *c[] = {"Hello","World"};
foo(c);
}