Sobes.tech
Middle

Ποιοι είναι οι δύο τύποι του τελεστή delete στην C++;

sobes.tech AI

Απάντηση από AI

  1. Τυπικός χειριστής delete: χρησιμοποιείται για την απελευθέρωση μνήμης που έχει δεσμευτεί για ένα μόνο αντικείμενο με τη χρήση του χειριστή new.
  2. Χειριστής delete[]: χρησιμοποιείται για την απελευθέρωση μνήμης που έχει δεσμευτεί για έναν πίνακα αντικειμένων με τη χρήση του χειριστή new[]. Όταν χρησιμοποιείται το delete[], καλούνται οι καταστροφείς όλων των στοιχείων του πίνακα με την αντίστροφη σειρά δημιουργίας τους.

Η χρήση λάθος τύπου χειριστή delete (π.χ. delete για πίνακα ή delete[] για μεμονωμένο αντικείμενο) οδηγεί σε μη ορισμένη συμπεριφορά.

Παράδειγμα:

// Τυπικός χειριστής delete
int* μεμονωμένο_αντικείμενο = new int(10);
// ... χρήση του μεμονωμένου_αντικειμένου
delete μεμονωμένο_αντικείμενο;

// delete[] για πίνακα
int* πίνακας_αντικειμένων = new int[5];
// ... χρήση του πίνακα_αντικειμένων
delete[] πίνακας_αντικειμένων;