指针函数的有关问题
指针函数的问题
char *chartest()
{
char a[]="so good!";
cout<<a<<endl;
return a;
}
void main()
{
cuot<<chartest()<<endl;
}
函数中可以正常输出,主函数输出就是乱码?为什么呢?
把char a[]="so good!";改成char *a="so good!";就都可以正常输出了,为什么呢?
------解决方案--------------------
没有理解内存分配机制
函数中的数组char a[]="so good!";是一个局部变量,函数结束内存已经释放
把char a[]="so good!";改成char *a="so good!";需要手动释放,或程序结束自动释放
------解决方案--------------------
char *chartest()
{
char a[]="so good!";
cout<<a<<endl;
return a;
}
void main()
{
cuot<<chartest()<<endl;
}
函数中可以正常输出,主函数输出就是乱码?为什么呢?
把char a[]="so good!";改成char *a="so good!";就都可以正常输出了,为什么呢?
------解决方案--------------------
没有理解内存分配机制
函数中的数组char a[]="so good!";是一个局部变量,函数结束内存已经释放
把char a[]="so good!";改成char *a="so good!";需要手动释放,或程序结束自动释放
------解决方案--------------------