Newsgroup: it.comp.lang.c
Titolo: PROBLEMA stupido.. anzi BUG stupido facilissimo per voi da capire... molto meno per me

Salve ragazzi ho un buggino che mi sta esaurendo! un buggino alquanto
stupido al quale pero' io non so metterci mano...
creo una struct...
/***********************/
typedef struct{
[...]
unsigned char* underS
}sprite,* Sprite_ptr;
/***********************/
poi alloco all'interno di una certa funzione il bufferino underS
/**********************/
void alloca(sprite_ptr Sprite){
[...]
Sprite->underS=( unsigned char *) malloc(45*56);
}
/***********************/
Maturalmente spra ho omesso i controlli per arrivare subito al punto.
. ( questo è il punto )
/***********************/
void libera( sprite_ptr Sprite){
free(Sprite ->underS);
}
/*******************/
Ogni volta che faccio il FREE crasha il sistema.. mentra se il free lo
faccio all'interno di alloca() e' tutto ok
SE poi il free non lo metto per niente.. il progra gira ma dopo qualke
minuto crasha... chiaramente FINISCE la memoria...
IO per compilare uso la penultima versione del DJGPP, non mi ricordo la
versione.. da qualke settimana ne e' uscita unanuova.. ma non l'ho
scaricata.. quindi immagino che la maggiorparte usi la stessa mia
E' un bug del DJgpp??
io non so come fare.. perche'
devo per forze DEallocare la memoria chiamando una certa funzione dopo un po
di tempo... quindi deve rimanere cosi' il
codice...
in alcuni esempi( non del djgpp) ho visto che fanno cosi',,, ed ho preso
spunto.. ma senza risultato..
A me sembra corretto .. ma il djgpp si pianta se lo lancio cosi' come e'
scritto sopra...
Spero sappiate darmi una manina.. col bufferino
RIPETO.. secondo me e' un BUG.. del DJGPP AIUTO AIUTO AIUTO
AIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOA
IUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAI
UTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIU
TOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUT
OAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTO
AIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOA
IUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAI
UTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIU
TOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTOAIUTO........capito?
AIUTOAIUTO  :))
uhm..:)
VSO of Vsoft
--
--
@|_v_S_o_| on #tgm
vins78...@freemail.it
3 anelli ai re degli elfi, sotto il cielo che risplende
7 ai principi dei nani, nelle lor rocche di pietra
9 agli uomini mortali, che la triste morte attende
[...]

 RIPETO.. secondo me e' un BUG.. del DJGPP AIUTO AIUTO AIUTO...
Evita di postare tanti AIUTO.
--
Alessandro Monti

minuto crasha... chiaramente FINISCE la memoria...
Ma se finisce la memoria ci vuole poco a controllare il valore ritornato da 
malloc(). Invece mi piacerebbe vedere gli altri campi della struttura...

 > free(Sprite ->underS);
subito dopo Sprite? No, gli spazi tra operandi e operatore non sono
significativi.
EMG

faccio all'interno di alloca() e' tutto ok
Sei sicuro di allocare memoria per il puntatore passato alle funzioni
?
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

 significativi.
Beh? Per me era di troppo, e non trovando problemi, gliel'ho detto. Ha anche
detto di aver messo i controlli del caso, per cui non sapevo cos'altro
dirgli. Non ho il compilatore citato e comunque non ha spedito il codice
completo, per cui non posso neanche provare a compilare sul mio PC.
Dopo 3 giorni non gli aveva risposto nessuno, per cui gli ho solo detto che
per me il codice era a posto, poi sta a lui andare a pensare dove altro può
esserci un errore.
--
Alessandro Monti

esserci un errore.
In realta' il codice e' a posto.
Io credo che il problema sia nel fatto di passare alle funzioni un
puntatore non inizializzato precedentemente.
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)