valgrind无效写入大小4

时间:2016-04-03 13:52:53

标签: c++ arrays pointers valgrind dynamic-memory-allocation

我如何解决这个问题,我的程序运行正常,但是valgrind一直告诉我,我犯了错误。

代码 enter image description here

错误 enter image description here

我无法弄清楚第104和第11行的错误。

1 个答案:

答案 0 :(得分:0)

如果您将代码粘贴(带有漂亮的缩进)而不是图片,那会更容易。无论哪种方式,问题似乎是你正在从for循环中减去j。

for(int j=v[z]-1;j>=0;j--) {
    for (int g=max_el;g > 0;g--) {  // secondary problem.
        p[k][j] = g;
        j--;                // This is the problem.
    }
}

也许这样:

for(int j=v[z]-1;j>=0;j--) {
    int g=max_el;
    p[k][j] = g;
    --g;
}

很难说没有数据,但看起来你正在递减j而不考虑限制j必须> = 0.你当然可以尝试使用调试器调试它,但我怀疑只是打印索引就像你一样循环可以解决一些问题。