Zapis pierwszy (z new), dokonuje alokacji pamięci na tablice w obszarze nazywanym dynamic storage w standardzie C++ który jest najczęściej mapowany na obszar sterty programu w systemie operacyjnym.
Zapis drugi (z użyciem zmiennej przekazywanej do wielkości tablicy), alokuje pamięć tablicy w obszarze stosu. Zapis taki (ze zmienną), nazywany jest VLA (ang. Variable Alocation Table) i jest właściwością języka C99 (bez plusów). Dostarczany jest wraz z kompilatorami także języka C++ i jest poza standardem C++. Stąd (z punktu widzenia standardu C++) zapis z VLA jest poza standardem. Z tego też powodu nie zaleca się jego użycia.
Co do działania, zapis pierwszy (z new), powoduje że wskaźnik na alokowane dane zachowuje swoją ważność do momentu dealokowania przez delete a więc także poza blokiem kodu w którym był tworzony. Zapis drugi powoduje zwolnienie przestrzeni pamięci po opuszczeniu bloku kodu. Dostępy realizowane są tak samo z użyciem indeksu. Poprawne działanie arytmetyki indeksów (a więc i wskaźników na pamięć), gwarantowane jest przez standard w zakresie od 0 do 1 elementu za tablicą.