问答题
使用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;”。