THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => C / C++ / C# => Topic started by: BOBoMASTORAS on October 17, 2006, 01:18:39 am



Title: deleted
Post by: BOBoMASTORAS on October 17, 2006, 01:18:39 am
deleted


Title: Re: new - malloc
Post by: aroubies on October 17, 2006, 13:39:21 pm
Δεν γίνεται όπως είπες. Τα ζευγάρια είναι new-delete και malloc-free. Όσον αφορά την διαφορά στην ταχύτητα, δεν έχω παρατηρήσει ιδιαίτερη διαφορά. Το μόνο που βρίσκω ότι έχουν διαφορετικό είναι η απλότητα στη χρήση. Με τη new εύκολα κάνεις memory allocation για ένα αντικείμενο ή μια μεταβλητή ή ένα πίνακα, ενώ με την malloc δεν μπορείς να κάνεις memory allocation για αντικείμενο. Τουλάχιστον όσο έχω δουλέψει εγώ.


Title: deleted
Post by: BOBoMASTORAS on October 17, 2006, 18:49:04 pm
deleted


Title: Απ: new - malloc
Post by: Axel on October 18, 2006, 02:59:57 am
Η new ειναι πιο γρηγορη απο τη malloc. Κανε μερικα τεστς μεσα σε loops για να δεις τι παιζει απο αποψη ταχυτητας. Επιπλεον για να χρησιμοποιησεις τη malloc πρεπει να κανεις include το alloc.h, δλδ χρειαζεσαι περισσοτερο χρονο για να την καλεσεις καθε φορα. Αν θες να γλυτωσεις χρονο τροποποιεις η γραφεις δικια σου malloc.


Title: deleted
Post by: BOBoMASTORAS on October 18, 2006, 03:11:04 am
deleted


Title: Απ: new - malloc
Post by: Axel on October 18, 2006, 03:17:26 am
Δεν το εχω ψαξει για τη free-new. Απλως δεν τις μπερδευω. Δεν βρισκω το λογο. :)

Στα υπολογιστικα παντως μπορεις να κατεβασεις χρονους χρησιμοποιωντας shift operators αντι για διαιρεση/πολλαπλασιασμο η να μειωσεις επαναληψεις μεσα σε loops σε περιπτωση που κανεις πραξεις με πινακες και αυτο ειναι εφικτο. Just in case που δεν τα ξερεις. :)


Title: deleted
Post by: BOBoMASTORAS on October 18, 2006, 03:24:39 am
deleted


Title: Re: new - malloc
Post by: poumpa on November 04, 2006, 15:33:24 pm
Δες αυτό το άρθρ (http://www.codeproject.com/tips/newandmalloc.asp)

Γενικά δεν συνίσταται να το κάνεις γιατί η συμπεριφορά είναι απροσδιόριστη.
Access violation ή Compiler error δεν θα εμφανιστεί.
Το πρόβλημα είναι αν θα αποδεσμευτεί σωστά ολόκληρη η μνήμη που δεσμεύτηκε δυναμικά. Με άλλα λόγια υπάρχει σαφής κίνδυνος για memory leak.