前言
今天我们来看下在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的简单用法了,后续如果有更进阶的用法会进行补充的。