Myślę, że wszyscy rozumiemy konieczność usunięcia podczas przydzielania dynamicznie przydzielanego wskaźnika w celu uniknięcia wycieków pamięci. Jednak jestem ciekawy, w jakim stopniu C++ wymaga użycia delete? Na przykład, weźmy następujący programCzy nowe zawsze musi następować usunięcie?
int main()
{
int* arr = new int[5];
return 0;
}
Chociaż dla wszystkich zamiarów i celów występuje tu żaden przeciek (ponieważ program kończy się, a system operacyjny będzie oczyścić całą pamięć raz powraca), ale robi średnia nadal wymagać - - lub polecam - użycie delete [] w tym przypadku? Jeśli nie, czy istnieje jakiś inny powód, dlaczego chcesz usunąć [] tutaj?
Rzeczywiście, mam na myśli, że często przepisuję wyciągi [] tuż przed powrotem, mimo że wiedziałem (na poziomie praktycznym), że nie ma to znaczenia. I nie jest to przyzwyczajenie, które zamierzam zatrzymać - interesowało mnie tylko to, w jakim stopniu zalecił to standard. – GRB