kfoynt Δημοσ. 17 Δεκεμβρίου 2008 Δημοσ. 17 Δεκεμβρίου 2008 Για κάποιο λόγο το My_class *pointer = new My_class; delete pointer, δεν μου σβήνει την μνήμη με αποτέλεσμα να έχω memory leak. Καμία ιδεα?? μήπως πρέπει να προσθέσω κάποια εντολή στο ~My_class() {} ???? Ευχαριστω!
georgemarios Δημοσ. 17 Δεκεμβρίου 2008 Δημοσ. 17 Δεκεμβρίου 2008 εξαρταται, αν καπου μεσα στη κλαση κανεις καποιο δυναμικο allocation, θα πρεπει να το ελευθερωσεις χειροκινητα. πως ξερεις οτι δεν σου την σβηνει απο τη μνημη; τι λαθος σου βγαζει; και αν θες, δωσε και το κωδικα της κλασης
kfoynt Δημοσ. 17 Δεκεμβρίου 2008 Μέλος Δημοσ. 17 Δεκεμβρίου 2008 εξαρταται, αν καπου μεσα στη κλαση κανεις καποιο δυναμικο allocation, θα πρεπει να το ελευθερωσεις χειροκινητα. allocation κάνω μόνο με new πως ξερεις οτι δεν σου την σβηνει απο τη μνημη; τι λαθος σου βγαζει; και αν θες, δωσε και το κωδικα της κλασης To ξέρω γιατι βλέπω τα processes ( το έχω δοκιμάσει και σε mac και σε Xp με Visual ) και η μνήμη ενώ ξέρω οτι έπρεπε να σβήνεται μετα το delete παραμένει..και όσο προχωράει ο αλγόριθμος δημιουργούνται συνεχώς νέα αντικείμενα χωρις να σβήνονται τα προηγούμενα φυσικα, με αποτέλεσμα η μνήμη να αυξάνεται συνεχώς... Δινω ένα μέρος μόνο απο την main γιατι έχει λίγο μεγάλο μέγεθος. > int main() { vector< Customer* > Elite_Customers; vector< Supplier* > Elite_Suppliers; vector< Vehicle* > Elite_VehiclesSuppliers; vector< Vehicle* > Elite_VehiclesCustomers; double fff = (unsigned)time(NULL); srand( fff ); //srand( 1.22936e+09 ); Print *print = new Print(); print -> printSolution( " Random Number ", fff ); delete print; Eφτιαξα την Print για να τεστάρω αν σβήνεται η μνήμη μετα το delete η Print ειναι η εξής : >using namespace std; class Print { public: Print() {}; ~Print() {}; void printSolution( string name, double random_number ) { string name2 = name + ".txt"; char file[ 200 ]; memset( file, '\0', 200 ); name2.copy( file, name2.length() ); ofstream solution_file; solution_file.open( file ); if( solution_file.is_open() ) { solution_file << random_number; } solution_file.close(); } };
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.