C++扩展 动态内存分配

一.普通变量
1.动态分配内存:

动态分配1块内存空间:[<type> * <p>=]new <type>(<val>);
  //参数说明:
    type:<val>的数据类型
    val:内存空间中存储的值
    p:指向这块内存空间的指针变量

//实例:
#include <iostream>
using namespace std;

int* f() {
	int* p = new int(10);
	return p;
}

int main() {
	int* p = f();
	printf("%d\n", *p);//结果:10
	printf("%d\n", *p);//结果:10
	printf("%d\n", *p);//结果:10
	return 0;
}

2.释放内存:

释放动态分配的内存:delete <p>;
  //参数说明:
    p:指向要释放的内存空间的指针

//实例:
#include <iostream>
using namespace std;

int* f() {
	return new int(10);
}

int main() {
	int* p = f();
	printf("%d\n", *p);//结果:10
	delete p;
	return 0;
}

二.动态数组
1.创建动态数组:

创建动态数组:[<type> * <p>=]new <type>[<len>];
  //参数说明:其他参数同上
    len:数组长度(即数组中元素的个数)

//实例:
#include <iostream>
using namespace std;

int* f() {
	int* p = new int[10];
	int i;
	for (i = 0; i < 10; i++) {
		p[i] = i + 100;
	}
	return p;
}

int main() {
	int* p = f();
	int i;
	for (i = 0; i < 10; i++) {
		printf("%d ", p[i]);
	}
	delete[] p;
	return 0;
}
//结果:
100 101 102 103 104 105 106 107 108 109

2.释放动态数组:

释放动态数组:delete[] <p>;
  //中括号([])告诉编译器要释放的是数组
  //参数说明:
    p:指向要释放的数组的首元素的指针
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值