Middle
Ποιοι είναι οι δύο τύποι του τελεστή delete στην C++;
sobes.tech AI
Απάντηση από AI
- Τυπικός χειριστής
delete: χρησιμοποιείται για την απελευθέρωση μνήμης που έχει δεσμευτεί για ένα μόνο αντικείμενο με τη χρήση του χειριστήnew. - Χειριστής
delete[]: χρησιμοποιείται για την απελευθέρωση μνήμης που έχει δεσμευτεί για έναν πίνακα αντικειμένων με τη χρήση του χειριστήnew[]. Όταν χρησιμοποιείται τοdelete[], καλούνται οι καταστροφείς όλων των στοιχείων του πίνακα με την αντίστροφη σειρά δημιουργίας τους.
Η χρήση λάθος τύπου χειριστή delete (π.χ. delete για πίνακα ή delete[] για μεμονωμένο αντικείμενο) οδηγεί σε μη ορισμένη συμπεριφορά.
Παράδειγμα:
// Τυπικός χειριστής delete
int* μεμονωμένο_αντικείμενο = new int(10);
// ... χρήση του μεμονωμένου_αντικειμένου
delete μεμονωμένο_αντικείμενο;
// delete[] για πίνακα
int* πίνακας_αντικειμένων = new int[5];
// ... χρήση του πίνακα_αντικειμένων
delete[] πίνακας_αντικειμένων;