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

admin2021-02-22  27

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

最新回复(0)