C++申请动态数组

一旦定义了一个变量,编译时,系统就会分配相应的内存空间,而且这块空间在程序生存期都不能由系统在分配。但程序设计的要求是千变万化的,内存空间往往需要根据进程中处理的数据量和对数据处理的变化而变化,为此,c++提供了程序运行时的动态存储分配机制。

关键字:new和delete
一般语法形式:指针变量=new 类型;
delete 指针变量;
delete []指针变量;(数组)

/////////////////////////////////////////////////////////////

#include<iostream>
using namespace std;
void App(int * & pa, int n);
int main()
{
	int *ary = NULL, *t, i, n;
	cout << "n= ";   cin >> n;
	App(ary, n);  //调用函数,动态分配数组
	for (i = 0; i < n; i++)
	{
		ary[i] = 10 + i; cout << ary[i] << "  ";  //对动态数组元素赋值
	}
	delete[]ary;
}
void App(int * & pa, int len)  //pa是指针引用参数
{
	pa = new int[len];  //动态分配数组
	if (pa == NULL)
	{
		cout << "allocation faiure\n"; return;
	}
	for (int i = 0; i < len; i++) pa[i] = 0;
}

程序中的App函数用于申请指定长度的动态数组。
注意,该函数的第一个形式参数:int *&pa
是指针应用参数。调用函数后,pa是ary的别名,new申请的内存地址写入pa,即写入ary。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值