帮忙看看这个语法问题,那里错了。
//1,
char *name;
name = NULL; //(1)
.......
.......
if(name)
delete [] name; //(2)
//这种初始化是我看的书上的写法,我只是添了一个if(name),编译没问题,执行的时候,(1)可以执行,但到了(2)就会出错。
//2,
char *name;
name = new char[strlen("none")+1];
name = "none"; //(1)
.......
.....
delete [] name; //(2)
//这种初始化,编译也没有问题,执行的时候(1)可以执行,但是到了(2)也会出错。提示是 debug assertion failed!
这都是为什么出错呢,是因为环境么。我的是vc6.0。
我也知道一种正确写法:
name = new char[strlen("none")+1];
strcpy(name, "none");
......
......
delete [] name;
我想知道的时前两个为什么会错呢?
请教高手。