{
char p[]="hello everyone";
return p;
}
int main(int argc, char* argv[])
{
printf("%s\n",getstring());
return 0;
}
char *getstring(void)函数中的p数组是局部变量,在栈空间。在函数调用结束后,局部变量销毁。但是这时函数返回值却是指向销毁内存的指针,这是野指针。千万不要返回局部变量的地址。在char p[]前加static就变成局部静态,生存期是整个程序执行期间,所以这时候返回它的指针可以读取这块空间、
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |