我试图编写一个带有动态矩阵的小程序(我从 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。 The Input (3,0) 消息出现后,程序崩溃。为什么?
最佳答案
你混合了 i 和 j,你应该做 scanf("%d", &matrix[j][i]);
关于c++ - c/c++ 中的动态矩阵 - 特殊错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823457/