char* ret_var(){
//char p[] = "hello world"; //输出乱码
char *p = "hello world"; //输出hello world
return p;
}
int main(){
char *p = NULL;
p = ret_var();
printf("%s\n", p);
}
分析:
第一种:分配了一块内存并且返回,但是函数结束后,这块内存也就被释放,所以主函数中p被赋予的是未知量
第二种:暂时不清楚
建议:
应该尽量在函数调用处申请内存,并将申请的内存变量传入函数,并返回该内存变量