2个月前我开始在大学学习C++,并试图找出如何将动态二维数组(指向指针的指针)作为输入传递给函数参数。 我有这样的动态二维数组:作为输入参数的指针(二维数组)的指针
int **p;
p = new int*[R];
for(i=0; i<R; i++)
p[i] = new int[C];
现在我想这个指针p传递给一个函数作为输入参数,使用常量。我的意思是我希望函数不能修改矩阵的元素。
我想这样的:
void func(const int **p) {
}
,但我得到这个错误:
main.cpp:19:11: error: invalid conversion from 'int**' to 'const int**' [-fpermissive]
main.cpp:9:6: error: initializing argument 1 of 'void func(const int**)' [-fpermissive]
我tryied使用的typedef和它的作品,但它不是恒定的。 如果我做这样的:
typedef int** abc;
void func(const abc p);
main() {
abc p;
...
func(p);
}
源编译,但功能“FUNC”是能够修改“P矩阵”的值;我希望p是一个输入参数,它必须是只读的!
请问,我该如何传递一个指针指向一个标记元素为只读的函数?
预先感谢您的帮助和歉意,我的英语不好。
你能否也请给我一个简短的解释呢?非常感谢。 – PeppeDAlterio