c++ 找错

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:44:37
void fun()
{
char* pSZ = new char(10);
memset(pSZ ,0,10 );

delete[] pSZ;
}
说出上面的代码错误
gxs536说的不错不过表示, char pSZ = 10 应改为char *psz=10吧不知道我是不是错了我编程很不行

char* pSZ = new char[10]; //[]来申请数组,表示:char pSZ[10]

char* pSZ = new char(10); //表示, char pSZ = 10

无语了,好好看看书吧
指针 是什么,好好看看书,很基础的东西

new char(10)错了,改成new char[10];

只看这一段不能说明问题……
你最好将整个程序段都放上来……

你的结尾有释放内存空间delete[] pSZ
所以前面的应该为动态分配内存空间。char * pSZ= new char[10];
另外,char pSZ = 10 有错误,应该是:char *psz="10"

char* pSZ = new char(10); 可以这么使用。
char* pSZ = new char(字符);语法要求括号里的应该是一个字符!但因为这里10是回车字符的ASCII码值,10代表着回车符,char pSZ = 10 结果就是pSZ为回车符 。

new运算符的语法格式为:
new 类型名 (初始值)
其中,类型名指定了要分配存储空间的类型。当动态申请单个变量或对象时,可以有初始值,也可以没有初始值;当动态申请数组变量或对象时,不允许有初始值。要注意的是,只有类的构造函数参数为空(void)或全部参数都带有缺省值时,才可以动态申请数组对象。当动态空间申请成功时,new运算符按要求分配一块内存,并返回指向该内存起始地址的指针;当动态空间申请不成功时,new运算符返回空指针NULL。
下边是几个引自Visual C++联机用户帮助手册的简单变量或对象的例子。
(1) int *pi = new int; // 申请一个整数类型空间由
// 整数类型指针pi指示
(2) char *pc = new char( ‘a’ ); // 申请一个字符类型空间