在C++编程时,会经常动态分配内存,以便合理使用内存,这时我们就可以用new来动态开辟内存。
相比于数组的固定开辟空间,如果我们不清楚要开辟多大的空间,往往会将空间开辟的很大使程序不会报错。但是这样会浪费很大的内存空间。但是如果我们使用new来动态开辟内存就不会出现这样的问题。
#include<iostream>
using namespace std;
int main()
{
int *p;
p = new int;//动态开辟空间
for (int i = 0; i < 5; i++)//这里的i无论是<5或<1000都是一样的,因为这个空间是动态的。
{
scanf_s("%d", p + i);
}
for (int i = 0; i < 5; i++)
{
printf("%d ", *(p + i));
}
return 0;
}
输入:
1 2 3 4 5
输出:
1 2 3 4 5
new不仅仅可以用来动态开辟整型,也可以开辟浮点型、字符类型等类型。
#include<iostream>
using namespace std;
int main()
{
int* p;
p = new int;//整型
float* q;
q = new float;//浮点型
char* m;
m = new char;//字符型
string* n;
n = new string;//string型
return 0;
}
这些也都是可以的。