{
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就变成局部静态,生存期是整个程序执行期间,所以这时候返回它的指针可以读取这块空间、
|
|
暂时没有评论
| 发表评论 - 不要忘了输入验证码哦! |
用户登陆
站点日历
站点统计
最新评论
C/C++ waring:返回局部变量或临时变量的地址 [ 日期:2021-01-28 ] [ 来自: