内存问题:
char *str()
{
char *str="cccc";
return str;
}
如上,看似str是临时变量,函数返回时,栈销毁。但是一般char *str="cccc";这样初始化,变量*str是放在常量区。所以调用该函数,正常返回“cccc”
如下初始化,str会放在临时变量的内存里,导致运行错误:
char *str()
{
char str[]="cccc";
return str;
}
内存问题:
char *str()
{
char *str="cccc";
return str;
}
如上,看似str是临时变量,函数返回时,栈销毁。但是一般char *str="cccc";这样初始化,变量*str是放在常量区。所以调用该函数,正常返回“cccc”
如下初始化,str会放在临时变量的内存里,导致运行错误:
char *str()
{
char str[]="cccc";
return str;
}