这段代码如何产生分段错误?

时间:2017-02-19 02:02:29

标签: c function segmentation-fault

我已经创建了这个功能,但是对于大多数输入来说,它似乎崩溃并且给了我一个"分段错误:11"错误。对于以下代码可能导致分段错误的输入是什么?

int cubic_runtime(int const * const data, int n)
{
    int max = 0;
    int i;
    int j;
    int k;
    int sum = 0;
    for(i = 0; i <= n - 1; i = i + 1){
        for(j = i; j <=  n - 1; j = j + 1){
            sum = 0;
            for(k = i; k <= j; k = k + 1){
                sum = sum + data[k];
            }
            if(sum > max){
                max = sum;
            }
        }
    }
    return max;
}

1 个答案:

答案 0 :(得分:0)

我可以添加以避免seg错误的一件事是:始终验证/健全 - 检查提供的输入。在这种情况下,&#39; n&#39;可以触发潜在的故障。我认为数据&#39;很好,因为它是只读的,我们只是阅读。