Przeczytałem, że delete[]
może zwolnić tablicę obiektów. Jednak w żadnym ze źródeł nie znalazłem wzmianki o tym, czy jest to błąd, czy nieokreślony, aby podać argument taki jak delete[3]
.Czy mogę podać argument, aby usunąć [] jak usunąć [3]?
Mam następujące zapytania.
- są określone w standardzie C++ czy mogę/nie suplly parametrem do
delete[]
jakodelete[3]
? - Jeśli tak, jaki jest efekt?
- Czy jest również określony w C++, czy mogę/nie mogę używać
delete
dla tablicy przydzielonej odnew[]
?
Przepraszamy za to pytanie, ale dlaczego chcesz podać argument do usunięcia? –
Nie należy mylić tego z 'delete tablica [3]', które usuwa to, co 'array [3]' wskazuje (więc jeśli masz tablicę wskaźników) i nie usuwa 'tablica' lub jakiejś jego części. Usunięcie subarray nie jest możliwe, jeśli chcesz to zrobić. – leemes
Aby napisać funkcję "void move_from_array (int * target, int * source) { * target = * source; delete [1] source ++;/* lub po prostu usuń źródło ++ */ target ++; } ' – pasha