如何在函数的参数中调用动态数组?

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:27:36
举个例子
void maininit(double **v)
v是我建立的二维动态数组。在这个函数中,用new建立了堆空间。按我的构想,这个v应该是可以返回给main函数然后main函数进行下一步操作的。
结果发现maininit这个函数结束以后v就被赋成NULL了。

我想做成引用,void maininit(double& **v)
VC报错,提示这句话不合语法。

目前我的做法只能是把v设成全局变量。请问有没有别的法子?

二维数组的话,动态参数的传递应该使用三重指针。
分析你v变成NULL的原因:你在函数里面用了new来给v重新赋值了,假定赋值后v的值变为v1,因此你的操作只能针对v1里的内容,函数结束后,v1的值是不能传给v的,这就是形参与实参的单向传递性,相信你可以明白。
纠正方法:你用3重指针的话,可以对*v去赋值,用new对*v建立堆空间,原来的形参改成&v,这样应该可以的