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