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

//********error********
cin.getline(s1,1024);
【正确答案】
【答案解析】(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;”。