C/C++ waring:返回局部变量或临时变量的地址
char *getstring(void)
{
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++对char*字符串的操作
欢迎关注微信公众账号ByCAD