C++ 创建二维动态数组的函数
我想创建一个创建二维动态数组的函数。于是我写道:C++ 创建二维动态数组的函数,c++,multidimensional-array,C++,Multidimensional Array,我想创建一个创建二维动态数组的函数。于是我写道: #include<iostream> using namespace std; void make_mat (double *** , int, int); int main(){ int m = 3, n = 4; double **a; make_mat(&a,m,n); for (int i = 0; i < m; i++) for (int j = 0; j &
#include<iostream>
using namespace std;
void make_mat (double *** , int, int);
int main(){
int m = 3, n = 4;
double **a;
make_mat(&a,m,n);
for (int i = 0; i < m; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
for (int i = 0; i < m; i++){
for (int j = 0; j < m; j++)
cout << a[i][j] << '\t';
cout << endl;
}
return 0;
system("pause");
}
void make_mat( double ***x , int m , int n){
*x = new double *[m];
for (int i = 0; i < m; i++){
*x[i] = new double [n];
}
}
#包括
使用名称空间std;
无效制造材料(双***,整数,整数);
int main(){
int m=3,n=4;
双**a;
制造材料(a、m、n);
for(int i=0;i>a[i][j];
for(int i=0;i cout*x[i]
相当于*(x[i])
,这相当于x[i][0]
在函数make_mat()
中,应该使用(*x[i]
而不是*x[i]
,*x[i]
相当于*(x[i])
,这相当于x[i][0]
在函数<代码> MaxyMa()/<代码>中,您应该使用<代码>(*x)[i] <代码>代替<代码> *[i]代码/<代码> < /p>定义Galava<代码>无效主代码()/<代码>在标准C++中是非法的。如果没有特殊的原因使用非标准<代码>(),则应该使用<代码> int()/>代码>
函数类型。是的,有一个更好的主意。使用flyingstd::vector
。为什么要用三星编程?去double**make\u mat(int,int)请忘记这个指针的废话。请熟悉<代码> STD::向量。您的<代码> J>代码>计数为 M< /Cord>,应该是<>代码> n>代码>。定义Galava< Cale>空主()/< >在标准C++中是非法的。
如果没有任何特殊原因使用非标准的main()
函数类型。是的,有一个更好的主意。使用flyingstd::vector
。为什么要使用三星编程?去double**make\u mat(int,int)
请忘记这个指针的废话。熟悉一下std::vector
。你的j
计数到m
,应该是n
a[i]
相当于*(a+i)
相当于*(x+i)
相当于*(x[i])
,相当于x[i][0]
。它不等同于(*x)[i]
,它相当于x[0][i]
a[i]
相当于*(a+i)
(*x+i)
相当于*(x[i])
,它相当于x[i][0][code>。它不等同于(*x)[i]
,它相当于(*x][i]
,它相当于x[0][i]
。