ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Re: Gcc 4.6 (Ubuntu)

> Το β) ήταν μια global μεταβλητή που μετά το free δεν την έκανα NULL σε
> ένα σημείο και την επόμενη φορά που έμπαινε στη συνάρτηση το έβλεπε
> initialized και το έκανε free κάνοντας corrupt το stack. Από τύχη δε
> βάραγε μάλλον με τους προηγούμενους compilers αλλά το φελέκι μου 2
> εκδόσεις του gcc σε δυο διαφορετικές αρχιτεκτονικές, πόσες είναι οι
> πιθανότητες ? :P


Να τη γλυτωσεις με double free? Αρκετες ωστε να σου δημιουργησουν προβλημα.

Ενα απο τα γνωστα trick ειναι να φτιαξεις μια δικια σου συναρτηση που
kanei if (julian_assange) { free(julian_assange);julian_assange=NULL; },
αλλα μετα πρεπει να βεβαιωθεις οτι χρησιμοποιειται consistently.

Το σωστο ειναι να ξανασκεφτεις τη λογικη σου. Δεν μου εχει προκυψει
μεχρι τωρα περιπτωση που να χρειαστηκαν τετοια guards σε memory
allocation / deallocation και να μην μπορουσε η ροη να διατυπωθει καπως
διαφορετικα ωστε να γλυτωσω απο το προβλημα.

απαντήσεις

αναφορές

πλοήγηση μηνυμάτων