c++ - c/c++ 中的动态矩阵 - 特殊错误

标签 c++ c matrix

我试图编写一个带有动态矩阵的小程序(我从 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/

相关文章:

c++ - 至少出现两次的最长子串 : C++ question

c++ - 将索引多边形转换为未索引的多边形。出现了几个问题

c++ - -迂腐警告和 pthread_create

c - 要模拟的弱别名

c - 守护进程无法在挂起后存活

ruby - 旋转二维数组的一部分

Matlab:从矩阵中仅提取奇数列

c++ - 理解查找和 vector C++

c++ - 睡后杀

c++ - Opengl 相机和乘法矩阵