64,646
社区成员
发帖
与我相关
我的任务
分享
char* f1()
{
char a[]="123456";
return a;//被认为是返回栈内存,会警告,甚至错误
}
char* f2()
{
char* a="123456";
return a;//被认为是返回常量字符串,ok
}
void f_1(char*& a,int num)
{
a=new char[num];//函数结束,申请内存失败
}
char* f_2(int num)
{
char* a=new char[num];//申请内存成功
return a;
}
char* f1()
{
char a[]="123456";
return a;//被认为是返回栈内存,会警告,甚至错误----------确实是在栈空间,函数返回,栈空间释放,故会出错
}
char* f2()
{
char* a="123456";
return a;//被认为是返回常量字符串,ok---------a指向的空间在全局数据常量区。函数返回,空间不释放
}
void f_1(char*& a,int num)
{
a=new char[num];//函数结束,申请内存失败------------我感觉不会失败
}
char* f_2(int num)
{
char* a=new char[num];//申请内存成功------------这不解释了吧!
return a;
}