为什么我的代码给我分段/核心转储错误?

时间:2019-12-03 18:46:02

标签: c++ arrays loops matrix transpose

该代码应该转置矩阵:

(key, dummy)

我尝试过使用可变大小的数组,使用不同的语法返回数组,甚至更改数组本身而不是使用第二个数组。即使暂时工作了,转置功能也无法正常工作。现在,它给出了分段故障/核心转储消息。

1 个答案:

答案 0 :(得分:1)

您索引m越界:

    for(i = 0; i < rows; i ++){
        for(ii = 0; ii < cols; i++) {   // note that you increase i, not ii, here
            cout << m[i][ii] << " ";
        }
        cout << "\n";
    }

您在main()的两个内部循环中都犯了相同的错误。解决方案是将内部循环更改为此:

        for(ii = 0; ii < cols; ii++) {  // increase ii instead
            cout << m[i][ii] << " ";
        }