ciotth
09-08-2004, 15:53
Ciao.
Mi sono permessa di aprire una nuova discussione, anche se collegata alla precedente, perchè sono riuscita ad arginare il problema e sono riuscita a ricostruire un esempio (semplice) in cui mi si ripropone lo stesso problema...
quando vado ad assegnare il campo weight_tran, vengono modificati i valori del campo items.
Di seguito è riportato l'esempietto...
void main()
{
TRACT *ta;
taset = (TASET*) malloc (sizeof(TASET));
taset->tracts = (TRACT**)malloc(sizeof(TRACT));
ta = (TRACT*)malloc(sizeof(TRACT) +(1) *sizeof(int));
ta->cnt=2;
ta->items[0]=0; ta->items[1]=1;
ta->weight_tran=4.5;
/*ogni volta che assegno un valore a ta->weight_tran vengono modificati alcuni dei valori di tat->items (quelli di posizione 1 e 2: sempre gli stessi)*/
taset->tracts[0]=ta;
}
Qualcuno mi sa spiegare una possibile motivazione.... ????? .....
Mi sono permessa di aprire una nuova discussione, anche se collegata alla precedente, perchè sono riuscita ad arginare il problema e sono riuscita a ricostruire un esempio (semplice) in cui mi si ripropone lo stesso problema...
quando vado ad assegnare il campo weight_tran, vengono modificati i valori del campo items.
Di seguito è riportato l'esempietto...
void main()
{
TRACT *ta;
taset = (TASET*) malloc (sizeof(TASET));
taset->tracts = (TRACT**)malloc(sizeof(TRACT));
ta = (TRACT*)malloc(sizeof(TRACT) +(1) *sizeof(int));
ta->cnt=2;
ta->items[0]=0; ta->items[1]=1;
ta->weight_tran=4.5;
/*ogni volta che assegno un valore a ta->weight_tran vengono modificati alcuni dei valori di tat->items (quelli di posizione 1 e 2: sempre gli stessi)*/
taset->tracts[0]=ta;
}
Qualcuno mi sa spiegare una possibile motivazione.... ????? .....