Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建二维动态数组的函数_C++_Multidimensional Array - Fatal编程技术网

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;icout
*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()/>代码>

函数类型。是的,有一个更好的主意。使用flying
std::vector
。为什么要用三星编程?去
double**make\u mat(int,int)请忘记这个指针的废话。请熟悉<代码> STD::向量。您的<代码> J>代码>计数为 M< /Cord>,应该是<>代码> n>代码>。定义Galava< Cale>空主()/< >在标准C++中是非法的。
如果没有任何特殊原因使用非标准的
main()
函数类型。是的,有一个更好的主意。使用flying
std::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]