new 的有关问题
new 的问题啊
------解决方案--------------------
实在是看不下去……
'\0’是char型的0,赋给指针相当于NULL
不要用这种写法
如果赋一个'\n’,不去用它程序也不会报错,如果要用肯定立马崩溃
还有,你要问的问题到底是什么?是用delete还是delete[]吗?这种情况是没关系但是养成new[]对应delete[],不管是什么类型或者长度是多少肯定不会有错
------解决方案--------------------
#include <iostream>假如有这个程序,如果会出现什么错误,(编译时没出错的)我的猜想是字符赋给一个指针变量,然后最后也没有delete p;还有点问题我想问的是 如果p=char [1];是delete p;还是delete []p;
#include <cstring>
using namespace std;
int main (){
char *p;
char a[20]="dsfdsfds";
p=new char[20];
strcpy(p,a);
cout<<endl<<p<<endl;
delete []p;
p=new char;
p='\0';
cout<<p;
return 0;
}
cstring
C
new
delete
------解决方案--------------------
实在是看不下去……
'\0’是char型的0,赋给指针相当于NULL
不要用这种写法
如果赋一个'\n’,不去用它程序也不会报错,如果要用肯定立马崩溃
还有,你要问的问题到底是什么?是用delete还是delete[]吗?这种情况是没关系但是养成new[]对应delete[],不管是什么类型或者长度是多少肯定不会有错
------解决方案--------------------
首先,你这个例子证明不了都行。
其次,看看这个链接,这种问题都烂掉了。
误人子弟啊
竟然都可以
编译没有错,运行出错,一般都是段错误啦!
修改了只读空间,字符串越界操作这些!
p = new char[1];
delete p ;
delete []p; //都可以的!
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *p = new char[1];
printf(" ======new p ok!\n");
delete p;