我在main函数中动态分配了一个矩阵。我想找到矩阵的上三角形。我正在使用guasselemination算法。函数名称为Uppertriangle。 void函数有三个参数:
void Uppertriangle(double** A, double *B, int n)
我想在SolveUppertriangle函数中使用修改后的矢量B返回修改后的矩阵A.
void SolveUpperTriangle(double **A, double *B,int size){
ReadMatrix(A,size); //Original matrix printed
UpperTriangle(A,B,size); //Prints out modified A
ReadMatrix(A,size); //Still prints out the Original Matrix
}
当我打印出UpperTriangle内的矩阵时,矩阵被正确修改,尽管另一个函数内的函数不会影响分配的矩阵。我可以选择将UpperTriangle的所有代码放在SolveUpperTriangle中,这样就可以解决问题。但我想弄清楚为什么矩阵不会改变。
int main(){
"here allocating matrix"
SolveUpperTriangular(A,B,n);
}
原始A矩阵
4 4 2
4 5 3
2 3 3
在Uppertriangle内部打印的修改后的上三角矩阵。
4 5 3
0 -1 -1
0 0 1.2
原始矩阵再次打印出来。
4 4 2
4 5 3
2 3 3