Почему я получаю ошибку сегментации в этой функции:ошибка Segmantation при добавлении элементов в структуре
#include <stdio.h>
#include <stdlib.h>
#include "math.h"
vec_t mtrx_multiple (sparse_mat_t a, vec_t c) {
vec_t result;
int i;
result.n = a.n;
printf("result.n: %d\n", result.n);
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]];
return result;
}
Структура:
typedef struct {
int n;
int *vec;
} vec_t;
typedef struct {
int *a;
int *ia;
int *ja;
int n;
} sparse_mat_t;
Спасибо за помощь
В какой строке вы получаете segfault? Скорее всего, ваше индексирование выходит за рамки. У 'a.a' и т. Д. Есть полезные значения? –
Некоторые полезные имена переменных в структуре помогут читаемости LOT. – Joe
Функция 'a' была сгенерирована тестовой функцией, используя другую функцию. Это работает хорошо. 'a.a' и' j.a' имеют элементы 'a.n'. – Devel