我写了下面的代码来测试int main()
int main() {
int *p1 = findmatrixsize("inputmatrix.txt","A");//A function gets matrix size
cout << p1[0] << endl << p1[1] << endl;
int *p2 = findmatrixsize("inputmatrix.txt","B");
cout << p2[0] << endl << p2[1] << endl;
double **C = normalmultiplication("inputmatrix.txt","A", "B");
cout << C[0][0] << endl;
ofstream fout;
const string s="outputmatrix.txt";
fout.open(s);
for(int i=0;i<p1[0];i++){
for(int j =0;j<p2[1];j++){
fout << C[i][j] << " ";
}
fout<< endl;
}
fout.close();
return 0;
}
除非我执行多阵列打印,否则一切正常。这是问题所在:
1.如果我注释掉打印部分,p1[0],p1[1],p2[0],p2[1],C[i][j]
给我想要的完美和正确的结果。
2.但是,当我使用普通循环打印时,它不起作用。但是,但是,但是,如果我p1[0],p2[1]
将 for 循环中的 更改为具体的数字,例如 3(当我的矩阵维度为 3 时),它会再次起作用。
3.可以编译,但是for循环打印部分没有写入txt。当我将其更改为标准打印 cout(不仅是单行,我的意思是整个方法)时,我也无法在终端中看到它们。但正如我上面提到的,当我将 p[0] p[1] 更改为 3 时,它可以工作,这意味着我可以在 txt 或终端中看到它们
我以前从未在 C++ 中遇到过这种奇怪的情况,所以我希望有人能帮助我!
仅供参考,我使用 Visual Studio 2010 作为编译器。
谢谢你的帮助!