当我连续编译并执行此代码几次时,它报告 cc 的地址为 0x0012FF5C。但是,当我尝试使用 foo 中对 printf 的第二次调用来打印该地址处的字符串时,它会打印垃圾而不是打印出“Hello”?为什么这样??当我知道地址位于应用程序的地址空间内时,如果我直接将地址作为参数传递会有什么问题(至少直到我不重新启动我的电脑,或者启动其他需要大量空间的应用程序,这会导致我的申请将被分页)??
void foo(char *cc[])
{
printf("%x\n",cc);
printf("%s\n",(char *)(0x0012FF5C));
}
int main()
{
char *c[] = {"Hello","World"};
foo(c);
}