jimisvog Δημοσ. 23 Μαΐου 2013 Δημοσ. 23 Μαΐου 2013 Καλησπέρα.. Εχω ενα προβλημα σε ενα προγραμματακι οσον αναφορα τον destructor.. Εχω την παρακατω κλαση και οταν καλω τον destructor κρασαρει και δεν εχω καταλαβει γιατι.. Μπορει να βοηθησει καποιος? class DIcourse{ private: int *ids; int numstudents; char *title; char *description; public: DIcourse(){ /* default constructor */ numstudents = 0; ids = (int*) malloc (numstudents+1); title = (char*) malloc (50); description = (char*) malloc(200); } ~DIcourse(){ /* destructor*/ delete[] ids; delete[] title; delete[] description; numstudents = 0; } Τι εχω κανει λαθος?
παπι Δημοσ. 23 Μαΐου 2013 Δημοσ. 23 Μαΐου 2013 Αποφασισε με τι allocator θα δουλεψεις. btw δες το shared_ptr
jimisvog Δημοσ. 23 Μαΐου 2013 Μέλος Δημοσ. 23 Μαΐου 2013 Τι εννοεις με τι allocator..? Ειμαι καινουργιος στην C++ και δεν ειμαι εξοικιωμενος εντελως ακομα.. Ουσιαστικα το char * θελω να το διαχειριστω σαν string αλλα χωρις να το κανω μετατροπη..
imitheos Δημοσ. 23 Μαΐου 2013 Δημοσ. 23 Μαΐου 2013 Αυτό που εννοεί είναι ότι το malloc πάει μαζί με το free και το new πάει μαζί με το delete. Ή θα χρησιμοποιήσεις το 1ο ζεύγος ή (καλύτερα) θα χρησιμοποιήσεις το 2ο.
jimisvog Δημοσ. 23 Μαΐου 2013 Μέλος Δημοσ. 23 Μαΐου 2013 Ναι σωστα.. Λαθος μου.. Ειχα συνηθισει απο C και τα μπερδεψα ολα.. Ευχαριστω πολυ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα