下面的代码先申请一个动态二维数组,然后按照下标访问其中的元素。这是个很简单的问题,我只是想强调一下,顺便辟谣。因为之前看网上某些文章说c++申请动态二维数组是不能按照下标访问的,还要经过自己将下标转换为相对地址,理由是动态申请的二维数组,虽然行内存储空间连续,但是行间不连续。下面的代码告诉你,你可以放心地使用下标,经过测试的,没问题。
#include <iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
int **a = new int*[m];
for(int i = 0; i < m; ++i)
{
a[i] = new int[n];
}
for(int i = 0; i < m; ++i)
{
for(int j = 0; j < n; ++j)
{
a[i][j] = 2;
}
}
for(int i = 0; i < m; ++i)
{
for(int j = 0; j < n; ++j)
{
cout << a[i][j] << ' ';
}
}
for(int i = 0; i < m; ++i)
{
delete []a[i];
}
delete []a;
return 0;
}
就这么干,没问题,真的。