C++学习之路抓紧跑路版(七)-动态申请内存空间

本文介绍了C++中使用new和delete进行动态内存管理的基本方法,包括如何为单个变量和数组申请内存,以及如何正确释放内存。通过实例展示了如何计算一组学生分数的最高分、最低分、平均分,并强调了释放数组时使用delete[]的重要性。
摘要由CSDN通过智能技术生成


前言

今天我们来看下在C++中如何动态申请内存空间,不多比比


一、如何申请动态内存空间?

在C++中我们用new/delete来申请和释放内存,可以定义在堆空间中具体申请了多少个内存,但是要记住最后要调用delete关键字来释放空间,如果是释放数组的话则需要delete[] XX来释放数组,表现形式:

*数据类型 指针变量名 = new 数据类型
如:
*int p = new int
或者:
*int pr = new int[10]
代码示例:

#include<iostream>
#include<string>
using namespace std;
int main()
{
        int *p = new int[10];
        for(int i = 0;i < 10;i++)
        {
                p[i] = i;
                cout<<p[i]<<" ";
        }
        cout<<endl;
        delete[] p;
}

输出:

0 1 2 3 4 5 6 7 8 9

要注意最后释放数组的话要加[]

二、练习

题目:从键盘输入学生分数 4 统计出最高分 最低分 平均分(动态申请空间)
代码示例:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int *p = new int[4];
	for(int i = 0;i < 4;i++)
	{
		cin>>p[i];
	}
	int min = p[0];
	int max = p[0];
	int sum = p[0];
	int avg = 0;
	for(int i = 1;i < 4;i++)
	{
		if(max < p[i])
		{
			max = p[i];
		}
		if(min > p[i])
		{
			min = p[i];
		}
		sum += p[i];
	}
	avg = sum / 4;
	cout<<"max = "<<max<<"min = "<<min<<"sum = "<<sum<<"avg = "<<avg<<endl;
	delete[] p;
}

输出:

1 2 3 4
max = 4min = 1sum = 10avg = 2

总结

以上就是new/delete的简单用法了,后续如果有更进阶的用法会进行补充的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值