Próbuję malloc
tablica wewnątrz struktury, ale nadal dostaję błędy segmentacji po uruchomieniu programu.Malloc tablica wewnątrz struktury
Funkcja compares
jest po prostu coś mi badania, więc nie powinno być częścią problemu
typedef struct {
char *string;
} prod_t;
int
main(int agrc, char **argv){
int i = 0;
prod_t *c = NULL;
char str2[100] = "abcd";
c->string = (char *) malloc(5 * sizeof(char));
strcpy(c->string,str2);
compares(c->stock,str2,i);
return 0;
}
Nie pamiętasz, aby przydzielić pamięć dla twojego 'prod_t * c'. – honk
Dodaj 'c = malloc (sizeof * c);', następnie 'c-> string = malloc (5 * sizeof * (c-> string));' – chux
Zwykle w takim przypadku wystarczy uruchomić program pod debuggerem, a następnie sprawdź awarię w pewnym wierszu, a następnie sprawdź wartości zmiennych w tej linii. W tym przypadku zobaczysz, że 'c' ma wartość' NULL', gdy program ulega awarii podczas próby dostępu do 'c-> string'. – hyde