c - 分段故障

标签 c segmentation-fault

在 C 中,当我尝试运行该程序时,出现“段错误”。这是什么意思?我该如何解决这个问题?

Tag tagNewDataPoint(const double x[MAX_DIMENSION],
                    const double w[MAX_DIMENSION],
                    const int d)
{
    int separator_arr,point_arr;
    double result = 0;
    for (separator_arr=0;separator_arr<d;separator_arr++)
    {
        for (point_arr=0;point_arr<d;separator_arr++)
        {
            result += w[separator_arr]*x[point_arr];
        }
    }

    if (result <0)
    {
        return NEG;
    }
    else if (result >0)
    {
        return POS;
    }
    else
    {
        return NOTAG;
    }
}

最佳答案

这个:

for (point_arr=0;point_arr<d;separator_arr++)

应该是:

for (point_arr=0;point_arr<d;point_arr++)

您增加了 separator_arr,但很快就检查了 pointer_arr 值(永远不会改变) separator_arr 太大了,您的地址无效。

关于c - 分段故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971921/

相关文章:

c - 独立实现的各种 WG14 C 标准之间有什么区别?

c - C中单个缓冲区中的多个空终止字符串

c - 将文本存储在 C 中的字符矩阵中

linux - Linux 中 shm_open 打印 errno 时出现段错误

c++ - GetWindowTextW 无法获取宽字符串

c - 有没有更好的方法来根据多重整除规则检查整数而不嵌套那么多 if-elses?

c - 第 5 次扫描后出现段错误

c++ - 在抛出 'std::length_error' what(): basic_string::_S_create 实例后终止调用

c - fgets 设置为 char * 导致段错误,动态字符串

python - 无法访问 const char 数组的值