Sto provando a malloc
una matrice all'interno di una struttura ma continuo a ricevere errori di segmentazione quando eseguo il programma.Malloc una matrice all'interno di una struttura
La funzione compares
è solo una cosa che sto testando quindi non dovrebbe essere una parte del problema
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;
}
si è dimenticato di allocare memoria per il 'C' prod_t *. – honk
Aggiungi 'c = malloc (sizeof * c);', quindi 'c-> string = malloc (5 * sizeof * (c-> string));' – chux
In genere, in un caso come questo, eseguirai il comando programma in debugger, quindi vederlo andare in crash su qualche riga, quindi esaminare i valori delle variabili su quella linea. In questo caso vedresti che 'c' è' NULL' quando il programma si blocca mentre provi ad accedere a 'c-> string'. – hyde