将动态二维数组作为参数传递给c++; Hythes,我实际上试图在C++中创建一个2D数组,但是当我执行下面的语句时,它不能创建它 int arr=new int[10][10] 它给了我错误,当我在谷歌上搜索时,它显示了C++中的2D数组是指针数组,它声明如下语句 int** a = new int*[rowCount]; for(int i = 0; i < rowCount; ++i) a[i] = new int[colCount];
或者不是,我无法得到当指针指向矩阵时,这个指针指向指针的指针将如何工作的逻辑,还有一件事是,我无法将它作为参数传递给函数。下面给出了将其作为参数传递的代码将动态二维数组作为参数传递给c++; Hythes,我实际上试图在C++中创建一个2D数组,但是当我执行下面的语句时,它不能创建它 int arr=new int[10][10] 它给了我错误,当我在谷歌上搜索时,它显示了C++中的2D数组是指针数组,它声明如下语句 int** a = new int*[rowCount]; for(int i = 0; i < rowCount; ++i) a[i] = new int[colCount];,c++,pointers,dynamic-arrays,pointer-to-pointer,C++,Pointers,Dynamic Arrays,Pointer To Pointer,或者不是,我无法得到当指针指向矩阵时,这个指针指向指针的指针将如何工作的逻辑,还有一件事是,我无法将它作为参数传递给函数。下面给出了将其作为参数传递的代码 void displayArray(int a[10][10]) { for (int i=0; i<10; i++) { for(int j=0; j<10; j++) { cout<<*a[i][j]<<"\t&q
void displayArray(int a[10][10])
{
for (int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
cout<<*a[i][j]<<"\t";
}
cout<<endl;
}
}
int main()
{
int** a = new int*[10];
for(int i = 0; i < 10; ++i)
a[i] = new int[10];
displayArray(**a);
}
实际上,我无法理解如何在矩阵中使用指向指针的指针,与其他语言相比,它太复杂了,我们只需要使用
new
操作符,就可以使用它们的维度访问它们,不需要这个指向指针的概念。请帮助我理解C++ 2D动态数组的整个逻辑。 ,你需要在函数中得到参数作为指针
void displayArray(int **a)
{
for (int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
cout<< a[i][j] <<"\t";
}
cout<<endl;
}
}
int main()
{
int** a = new int*[10];
for(int i = 0; i < 10; ++i)
a[i] = new int[10];
displayArray(a);
}
void显示数组(int**a)
{
对于(int i=0;iPop测验:a
的类型是什么?这与displayArray
的参数必须是同一类型。如果大小不同,如int[10][20],问答会更清晰不幸的是,它们是相同的。我实际上试图在C++中创建一个2D数组,但是不能创建它——“它与其他语言相比太复杂了”。-这不一定是一个完全公平的比较。大多数其他语言无法做到这一点。这超出了它们的范围。这些都是非常低级的数组结构,即使是大多数C++
程序员也不需要使用。要想获得与另一种语言中的动态数组更等效的东西,您应该看看std::vector
f或数组和std::vector
用于二维数组。
error: invalid conversion from ‘int’ to ‘int (*)[10]’ [-fpermissive]
void displayArray(int **a)
{
for (int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
cout<< a[i][j] <<"\t";
}
cout<<endl;
}
}
int main()
{
int** a = new int*[10];
for(int i = 0; i < 10; ++i)
a[i] = new int[10];
displayArray(a);
}