首页学历类考试大学计算机科学
(简答题)

下面三个程序运行时分别会产生什么结果?为什么?

正确答案

程序1:系统运行崩溃。
原因:GetMemory(str,100)并没有将申请到的内存传回到调用程序,str一直是NULL,从而导致非法内存访问,使程序崩溃。
程序2:显示“Hello World.”,但将产生内存泄漏。
原因:GetMemory(&str,100)申请到的内存没有被释放。
程序3:显示“Hello World.”但有时系统运行异常。
原因:在free(str)释放内存空间后,str仍然指向原来空间地址,成为“野指针”。如果这时系统将所释放的空间分配给其他程序使用,将会造成系统运行异常。

答案解析

相似试题

  • (简答题)

    对于下面程序: 程序中有的地方在运行时会产生没有被捕获的异常,应该如何纠正以保证程序的稳定性?为什么?

    答案解析

  • (单选题)

    运行下列程序, 会产生什么结果?()

    答案解析

  • (单选题)

    运行下列程序, 会产生什么结果()

    答案解析

  • (简答题)

    下面是两个字符串的比较程序,比较结果存放在RESULT单元中。试问: (1)、程序运行后,结果单元(RESULT)存放的内容表示什么意义? (2)、SJ1的字符串为‘captial’,SJ2的字符串为‘captive’时,(RESULT)=?

    答案解析

  • (填空题)

    当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。

    答案解析

  • (填空题)

    当运行下面程序时,从键盘上输入,则写出下面程序的运行结果。

    答案解析

  • (填空题)

    下面程序运行结果为()

    答案解析

  • (单选题)

    下面程序: 运行后输出结果为()

    答案解析

  • (单选题)

    编译并运行下面的Java程序,将产生什么结果()。

    答案解析

快考试在线搜题