C-此代码如何产生分割故障



我已经创建了此功能,但是对于大多数输入,它似乎会崩溃并给我一个"分割故障: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;
}

我可以添加的一件事以避免seg故障是:始终验证/sanity-检查提供的输入。在这种情况下," N"的值会触发潜在的故障。我认为"数据"很好,因为它是只读的,我们只是阅读。

相关内容

  • 没有找到相关文章

最新更新