Ошибка сегментации - PullRequest
       3

Ошибка сегментации

0 голосов
/ 07 августа 2011

В 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;
    }
}

Ответы [ 2 ]

5 голосов
/ 07 августа 2011

Это:

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

должно быть:

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

Вы увеличиваете separator_arr, но достаточно быстро проверяете значение pointer_arr (которое никогда не изменяется) separator_arr слишком велик, и ваш адрес недействителен.

2 голосов
/ 07 августа 2011

У вас есть индекс перекрестных помех.

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

должно быть

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

...