我想寫一個帶有動態矩陣的小程序(我用C開始了它,但現在我發現我需要用C++來完成它)。它的主要部分是這樣的:在c/C++中的動態矩陣 - 奇怪的錯誤
int main()
{
int n,m,i,j,k;
printf("Matrix A n x m:\n");
printf("Input n: ");
scanf("%d",&n);
printf("Input m: ");
scanf("%d",&m);
int** matrix = new int*[m];
if (matrix == NULL) {
printf("no memory\n");
system("pause");
exit(1);
}
for(k=0; k<m; ++k)
{
matrix[k]=new int[n];
if(matrix[k]==NULL)
{
printf("error");
}
}
j=0;
do
{
i=0;
do
{
printf("input (%d,%d):", i,j);
scanf("%d", &matrix[i][j]);
i++;
}
while (i<n);
j++;
}
while (j<m);
}
它編譯沒有錯誤,但它不能正常工作。例如,我可以創建2x4矩陣,但不能創建4x2。輸入(3,0)消息出現後,程序崩潰。爲什麼?
有你試圖使用一些調試器? –
C++版本簡而言之:不要使用指針,請使用''。 –
chris
@chris是什麼讓你覺得'printf' /'scanf'是他問題的任何部分? –