在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;
}
}
答案 0 :(得分:5)
此:
for (point_arr=0;point_arr<d;separator_arr++)
应该是:
for (point_arr=0;point_arr<d;point_arr++)
您递增separator_arr
,但很快检查pointer_arr
值(永不改变)separator_arr
太大,而您的地址无效。
答案 1 :(得分:2)
您有索引串扰。
for (point_arr=0;point_arr<d;separator_arr++)
应该是
for (point_arr=0;point_arr<d;point_arr++)