silentpower Δημοσ. 6 Μαΐου 2006 Δημοσ. 6 Μαΐου 2006 Χρησιμοποιω εναν pointer και κανω malloc() ενα μεγεθος γραφω μεσα στο χωρο και πριν το τελος την συναρτησης κανω free τον pointer και pointer=NULL; To προβλημα ειναι οτι οταν ξαναμπω στην συναρτηση δηλαδη ξαναδηλωσω παλι τον pointer κανω malloc το ιδιο μεγεθος χωρου κτλ υπαρχουν μεσα οι προηγουμενες εγγραφες!μπορω να κανω κατι ωστε να δεσμευω κενο χωρο και οχι τον χωρο της προηγουμενης εισοδου στη συναρτηση?
ni_kuho Δημοσ. 6 Μαΐου 2006 Δημοσ. 6 Μαΐου 2006 Αυτό που περιγράφεις είναι πολύ περίεργο. Δεν είναι όμως απόλυτα σαφές τι λες. Αν μπορείς ποσταρε τη συνάρτηση που λες μήπως μπορέσω να σε βοηθήσω.
takis456 Δημοσ. 6 Μαΐου 2006 Δημοσ. 6 Μαΐου 2006 Δοκίμασε αντί να κάνεις malloc και free να χρησιμοποιήσεις κάποια συνάρτηση για μηδενισμό των δεδομένων. (π.χ. ZeroMemory(...); )
Sta Δημοσ. 6 Μαΐου 2006 Δημοσ. 6 Μαΐου 2006 Χρησιμοποιω εναν pointer και κανω malloc() ενα μεγεθος γραφω μεσα στο χωρο και πριν το τελος την συναρτησης κανω free τον pointer και pointer=NULL; To προβλημα ειναι οτι οταν ξαναμπω στην συναρτηση δηλαδη ξαναδηλωσω παλι τον pointer κανω malloc το ιδιο μεγεθος χωρου κτλ υπαρχουν μεσα οι προηγουμενες εγγραφες!μπορω να κανω κατι ωστε να δεσμευω κενο χωρο και οχι τον χωρο της προηγουμενης εισοδου στη συναρτηση? Δεν καταλαβαίνω γιατί σε πειράζει αυτό που γίνεται, η malloc() σου επιστρέφει μη αρχικοποιημένη μνήμη οπότε δεν πρέπει να βασίζεσαι στο περιεχόμενό της. Αν θέλεις όμως αρχικοποιημένη σε 0 μνήμη, χρησιμοποίησε την calloc() αντί της malloc(). Κοίταξε τα ορίσματα που παίρνει και τι επιστρέφει.
Directx Δημοσ. 6 Μαΐου 2006 Δημοσ. 6 Μαΐου 2006 Απλά μόλις καλέσεις επιτυχώς την malloc ύστερα κάλεσε την memset θέτοντας τα περιεχόμενα του μπλοκ σε μηδέν. Υ.Γ. Ουσιαστικά δεσμεύσεις κενό χώρο, απλά η malloc δεν τον καθαρίζει καθώς δεν υποχρεούται από το ANSI C πρότυπο οπότε το περιεχόμενο του μπλοκ εξαρτάται από την υλοποίηση του compiler σου.
silentpower Δημοσ. 6 Μαΐου 2006 Μέλος Δημοσ. 6 Μαΐου 2006 ok το προβλημα λυθηκε σας ευχαριστω ολους!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.