Я подозреваю, что это линия, где проблема:
result.vec = malloc(a.n * sizeof *result.vec);
for(i=0; i<a.n; i++)
result.vec[i] = c.vec[i] * a.a[a.ja[i]];
Причина в том, что вы не malloc
IN для каждого result.vec[i]
..
Вы можете это подтвердить?
Изменить:
Спасибо Alok и Devel за сообщение о моей ошибке ...
Что возвращает sizeof *result.vec
? По общему признанию это выглядит запутанным, как будто приоритет между sizeof
смешивается с *
...
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.