int n = 3;
int p[] = {3,2,4,3};
int m[n+1][n+1];
int s[n+1][n+1];
cout<<"What's the division of Matrix A * B * C?"<<endl;
MatrixChain(p, n, m, s);
cout<<"It is "<<Traceback(1,n,s)<<endl;
[Error] cannot convert 'int (*)[(((sizetype)(((ssizetype)(n + 1)) + -1)) + 1)]' to 'int**' for argument '3' to 'void MatrixChain(int*, int, int**, int**)'
[Error] cannot convert 'int (*)[(((sizetype)(((ssizetype)(n + 1)) + -1)) + 1)]' to 'int**' for argument '3' to 'void Traceback(int, int, int**)'
定义数组时不能使用变量,可以const int n=3或int m[4][4]; int s[4][4];
把n+1改成四就可以了,数组定义不能用变量,你如果不确定数组大小,可以把他设的非常大,只要可以包含你需要的范围就可以了
使用枚举来定义n,如 enum {n=3;};
MatrixChain和Traceback设置成有返回值的函数
不要用变量定义数组长度,用const int n=数组长度。或者直接用数字,作为数组长度