理论教育 C++程序设计示例-编辑、编译和运行

C++程序设计示例-编辑、编译和运行

时间:2023-11-19 理论教育 版权反馈
【摘要】:单击“Next”按钮进入下一步,弹出一个对话框,如图1.5所示。图1.3新建工程类型选择对话框图1.4新建控制台应用程序的欢迎界面图1.5选择编程语言类型在弹出的对话框中有C和C++两个选项,选择C++表示编写C++控制台应用程序,选择C表示编写C控制台应用程序。这里以编写C++程序为例,因此选择C++。图1.9编辑源程序图1.10编译正确图1.11连接成功并生成可执行文件图1.12运行结果窗口关闭程序。

C++程序设计示例-编辑、编译和运行

用两种方法,编写产生和处理内存耗尽异常的程序。

当我们利用new函数申请比较大的空间时,由于系统内存资源有限,不一定能满足需求。针对这种情况,常规的错误处理认为在new失败时会返回NULL,从而形成如代码清单17.1所示的处理方法。

如果在Microsoft Visual C++6.0环境下运行上述代码,会产生类似下面的运行结果:

Allocated 100000000 doubles in ptr[0]

Allocated 100000000 doubles in ptr[1]

Memory allocation failed for ptr[2]

输出显示程序在new失败前只进行了两次成功空间分配,循环就结束了。根据实际使用的计算机的物理内存、系统为虚拟内存分配的磁盘空间的不同,都会使输出结果有所不同。

但是同样的代码在Code::Blocks环境下运行时,却会产生类似下面的运行结果:

Allocated 100000000 doubles in ptr[0]

Allocated 100000000 doubles in ptr[1](www.daowen.com)

terminate called after throwing an instance of'std::bad_alloc'

what(): std::bad_alloc

这说明Code::Blocks在new失败时抛出bad_alloc异常而不是返回NULL。

代码清单17.2给出采用异常处理的方法。

上述代码在CodeBlocks环境下运行,会产生类似下面的运行结果:

Allocated 100000000 doubles in ptr[0]

Allocated 100000000 doubles in ptr[1]

Exception occurred:std::bad_alloc

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈