Była już o tym masa wątków. Np tutaj:
https://forum.pasja-informatyki.pl/384088/tablica-statyczna-a-dynamiczna?show=384088#q384088
Pierwsze jest troszke zepsute, bo tutaj
cout<<(int)tablica<<endl;
wypisujesz kolejne adresy pamięci, a inkrementując sam wskaźnik tablica nie możesz potem zrobić na nim delete[].
A drugie jest niezgodne ze standardem. Wielkosc tablicy alokowanej na stosie musi być znana w momencie kompilacji, choć sporo kompilatorów idzie na rękę programistom i pozwala tę zasadę złamać. Dlatego Tobie to akurat działa, ale nie powinno i na innym kompilatorze może nie działać.