欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于c++的动态分配数组

程序员文章站 2023-12-26 15:09:15
...

在c++中,数组的长度的值应该是一个具体的数字,不能是一个变量。通常我们借助指针来给动态分配数组
一维数组

int n;
cin >> n;
int *a = new int[n] 

二维数组

int n;
cin >> n;
int **a = new int*[n];
for(int i = 0 ;i < n; i++){
	a[i] = new int[n]
}

动态分配与静态分配的不同

int n;
cin >> n;
char **a = new char*[n];
for (int i = 0; i < n; i++) {
	a[i] = new char[n];
}
cout << &a[0] << endl << &a[1];

我们输出结果发现0143D898 0143D89C相差4个字节,恰好的是一个指针的长度,说明动态分配的二维数组,我们可以把他理解为一个数组,数组的类型是指针,每一个指针又指向一个数组。

char a[10][10] = { "fafeafj","faewfaewf","faefea" };
cout << &a[0] << endl << &a[1];
00B5F7D4  00B5F7DE

这里相差恰好是10 ,说明二维数组的空间和一位数组一样都是连续分配的

上一篇:

下一篇: