c++编程如果申请非常非常大的内存空间时,怎么样判断电脑内存是否足够

/C++编写一个函数模拟动态分配数组的内存空间。
函数具有一个整型参数,它代表待分配的一个整型数组元素的个数。
函数应当完成必要的出错检测(如参数为0或负数),
如果内存空间充足,那么就分配需要的空间,并返回指向该空间的 指针;否则返回一个空指针
/

#include<iostream>`
#include<cstdlib>
#include<exception>
using namespace std;

int* p;		//全局变量

int* ARRAY(int x)
{
	if (x <= 0)		//出错检测
	{
		cout << "false!!!" << endl;
		exit(1);		//表示非正常运行导致退出程序
	}

	try		//{}里包含可能出错的代码
	{
		p = new int[x];		//如果内存不够,返回NULL指针
	}
	catch (exception)//如果try{}里面出错,则执行以下内容
	{
		int* p0 = NULL;
		cout << "指针申请失败,内存不足!!!" << endl;
		return p0;
	}
	cout << p << endl;
	return p;
	//方法二:(内存不够时,有的编辑器自动中止,有的可以运行)
	//if (p == NULL)
	//{
	//	cout << "指针申请失败,内存不足!!!" << endl;
	//	cout << p << endl;
	//	delete[] p;		//释放p指针

	//	int* p0 = NULL;
	//	return p0;		//返回一个空指针
	//}
	//else
	//{
	//	cout << p << endl;
	//	return p;
	//}

	//你也可以使用vector或者malloc函数
}

int main()
{
	int x;
	cin >> x;		//确定ARRAY()函数实参值
	ARRAY(x);
	delete[]p;		//释放p指针
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值