#include <iostream>
using namespace std;
char* fanhui()
{
char* str=new char[50];
cin>>str;
return str;
}
void main()
{
char *str;
str=fanhui();
cout<<str<<endl;
}
为什么这里使用char* str=new char[50];就行,而不用 new就不行,有什么意义吗,求解。
如果我要通过上面的这段程序自己去释放,那么,释放的代码应该怎样写呢?
追答在主函数最后一条语句之后,return 0;之前添加
delete [] str; // 对于数组就是delete[] str; 这种形式,
// 对于单个变量delete pi; 就可以了、、
1、C语言中,字符串不是一种基本类型,其本质是字符数组,因此直接返回字符串是不行的。因为C语言不允许例如 char[10] fun(){}这样的函数定义方式。但是可以返回字符指针。返回一个动态分配的内存地址。
2、例如:
char * c;那我该如何,在哪里将它释放呢?