|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2010
Messaggi: 166
|
[C] Errore di segmentazione
Salve, questo codice mi da un erroe di segmentazione che non riesco a risolvere nonostante vari tentativi. Queste sono le strutture:
Codice:
struct Prodotto{
char tipo[20];
int quantita[N_PROD];
}Prodotto[N_PROD] = {{"Caffe"},{"Tessuti"},{"Spezie"},{"Legno"},{"Ceramiche"}};
typedef struct {
int data;
struct Prodotto venduto;
}Giornata;
typedef struct {
char nome[20];
char cognome[20];
int codice;
Giornata* giornata[MAX_GIORNI];
}Agente;
Codice:
void creaGiornate(Agente* ag, int i) {
int j, num_giorni;
printf("Quante giornate hai lavorato in questo mese? ");
scanf("%d", &num_giorni);
for(j = 0; j < num_giorni; j++) {
ag[i].giornata[j] = (Giornata*)malloc(sizeof(Giornata));
if(ag[i].giornata[j] == NULL) {
printf("Errore di allocazione!\n");
return;
}
printf("Inserisci il %d%c giorno di lavoro(da 0 a 30)", i + 1, 167);
-->> scanf("%d", &ag[i].giornata[j]->data);
inserisciVenduto(ag, i, j);
}
return;
}
L'idea è una serie di Agenti(chieste all'utente), per ogni agente una serie di giornate(chieste all'utente), per ogni giornata la quantità venduta di ognuno dei prodotti. Potrei farlo con le liste e credo sarebbe più comodo, ma vorrei risolverlo prima così. Se serve per testarlo posto tutto il codice. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2013
Città: vicino vicenza
Messaggi: 787
|
utilizzi la malloc all'interno della funzione nel ciclo (e non so se la usi anche priama), sei mai andato a liberare la memoria?
ti dico questo perchè tempo fa avevo un problema simile, dopo un pò che il programma era in esecuzione si piantava e li ho notato che non liberavo mai la memoria
__________________
il mio pc |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Se non hai ancora risolto ti conviene postare tutto il codice.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:45.



















