使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序运行后没有内存遗漏。可以在修改处增加或者删除一条语句。本程序完成输入两个字符串,分别存储到s1,s2中。 注意:不要改动main函数,不能增行或删行,

admin2016-10-28  32

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序运行后没有内存遗漏。可以在修改处增加或者删除一条语句。本程序完成输入两个字符串,分别存储到s1,s2中。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
#include<iostream.h>
void main()
{
char*s1;
char s2[1024];
cout<<"please input a string:"<<endl;
//********error********
cin.getline(s1,1024),
cout<<"please input a string:"<<endl;
cin.getline(s2,1024);
//********error********
delete s1;
//********error********
delete s2;
return;
}

选项

答案(1)s1=new char[1024]; (2)delete[]s1; (3)删除“delete s2;”语句

解析 (1)s1变量为指针变量,在使用前要对其分配空间,所以第1个标识下添加“s1=new char[1024];”。
(2)为了防止内存空间的泄漏,指针变量使用后,要将其空间释放,第二个标识下“delete[]s1;”。
(3)s2是数组变量,空间是在使用前静态分配的,不是使用前动态分配的,所以使用后不用释放内存空间,这里应该删除“delete s2;”。
转载请注明原文地址:https://kaotiyun.com/show/AKNp777K
0

最新回复(0)