C++ 动态数组
1,C与C++动态数组创建的区别
#include<iostream>
using namespace std;
int main()
{
int n;
cout <<"输入你想创建的数组个数" << endl;
cin >> n;
int *p = (int *)malloc(n * sizeof(int));
if(p != NULL)
{
cout << "创建成功" << endl;
}
int *b = new int[n];
if(b != NULL)
{
cout << "创建成功" << endl;
}
return 0;
}
从上面代码可以看出C语言在创建动态数组的时候比较麻烦。
2,动态数组初始化
#include<iostream>
#include<string>
using namespace std;
int main()
{
int *p = new int[10];//没有初始化
string *b = new string[10];//默认的构造函数初始化
int *q = new int[10]();//初始化都为0
*q = 1;
*(q + 1) =2;
cout << *(q + 6)<< endl;
for(int *a = q;a != q + 10;a ++)
{
cout << *a << endl;
}
delete[] p;
delete[] b;
delete[] q;
return 0;
}