Wskaźnik zwykły a wskaźnik na tablicę nieco się różnią.
- kompilator przy użyciu operatora sizeof na tablicy dynamicznej zmiennej tablicowej ogarnie że chodzi o pamięć zarezerwowaną przez tablicę. W przypadku zwykłego wskaźnika zwróci 4 bajty dla systemu 32 bitowego i odpowiednio 8 bajtów dla systemu 64 bitowego.
- Kiedy rzutujesz np float do integer'a? Nie jestem pewien czy zrozumiałem.
- Podczas przekazywania tablicy jako argumentu do funkcji. Operujesz wtedy na wskaźniku i wyjście poza jej rozmiar nie wywali żadnego błędu a może doprowadzić do wycieku pamięci itp.
- Sprawdzasz czy wskaźnik NIE jest nullem przed wywołaniem delete/free. Dobrym nawykiem jest podpisanie pod niego NULL/nullptr po wywołaniu tychże funkcji. W przeciwnym wypadku jest to tzw dangling pointer i nie jest to bezpieczna rzecz.
Mam nadzieję, że w miarę. Jeśli chcesz to naprawdę dobrze zrozumieć polecam przeczytać Rusz głową! C. Polecam!