注册 登录
编程论坛 C++教室

新来这里,问一道改错题,希望得到你们的指点,谢谢

yinhorse 发布于 2008-08-05 23:31, 867 次点击
我正在自考计算机应用,周围也没有人懂C++,希望大家能够帮助我这样的学生

麻烦解释下答案


假设有一个正确定义的类Test,改正主程序中的错误.
void main(){
test *two[2]={test(4,5),test(6,8)};
for(i=0;i<2;i++)
delete two[i];
}
5 回复
#2
blueboy820062008-08-05 23:35
delete two[i];
#3
blueboy820062008-08-05 23:40
我还不知道你那个类具体是怎么写的,
就现在来看,肯定是delete two[i];
有问题了,
因为,
如果指针指向不是用new分配的内存地址,则在该指针上使用delete是不合法的。
#4
yinhorse2008-08-06 00:33
嗯,delete要和new一起作用,
有人说这么改
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);

还有那个for循环条件也不对


虽然知道答案了,但是这是 特殊函数和成员 一章的题,这题目不搭界...
#5
loveff2008-08-06 09:12
能不能改成一些比较简单的复合程序结构啊。。。这样就能避免结构错误了。。。
#6
zerocn2008-08-06 18:47
[bo][un]yinhorse[/un] 在 2008-8-6 00:33 的发言:[/bo]

嗯,delete要和new一起作用,
有人说这么改
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);

还有那个for循环条件也不对


虽然知道答案了,但是这是 特殊函数和成员 一章的题,这题目不搭界.. ...


void main(){
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);
for(i=0;i<2;i++)
delete two[i];
}


没有定义I
1