C ++ jaka jest różnica między statycznym a dynamicznym przydziałem tej tablicy? [duplikować

To pytanie ma już odpowiedź tutaj:

Różnica między typem tablicy a tablicą przypisaną do malloc 9 odpowiedzi
int length = 5;
int hi[length];

v

int length = 5;
int *hi = new int[length];

Nauczono mnie, że kompilatory narzekają w C za każdym razem, gdy próbujesz statycznie przydzielić tablice w / rozmiar, który nie jest stały. Jeśli więc kiedykolwiek potrzebowałeś tablicy o nieznanym rozmiarze, musisz dynamicznie przydzielić pamięć. Jednak teraz, gdy istnieją kompilatory, które pozwalają na pierwszy przykład, co dokładnie robią? Czy nadal idą w segmencie danych, czy nie idą na stos? Jeśli idą na stos, to jaka jest różnica między przykładami i dlaczego nadal musiałbym wywoływać delete [] w drugim przykładzie, ale nie w pierwszym przykładzie?

questionAnswers(2)

yourAnswerToTheQuestion