Inicjalizacja tablicy

0

Witam! Czemu w Code:Blocks możliwe jest coś takiego czyli tablica niedynamiczna, której wielkość jest ustalana na podstawie podanych zmiennych

int n ,m;
cin >> n >> m;
int tablica[n][m];

, a na przykład w Visualu coś takiego już nie przejdzie. I jak powinno się to tak naprawdę robić?

4

w c++ nie powinieneś używać tablic tylko stl wrapperów, std::array (dla statycznych) lub std::vector (dla dynamicznych lub statycznych)

a tutaj o Twoim problemie:
http://stackoverflow.com/questions/5368531/why-cant-i-create-an-array-of-size-n

0

@gośćabc

Co innego to jak się powinno robić, a co innego kiedy człowiek dopiero się uczy języka.

@OrientMantis24

To zależy od kompilatora, ponieważ jeżeli chcesz tworzyć tablice statyczne to ich rozmiar musi być znany w momencie kompilacji. jeżeli robisz int tablica[n], to wartość zmiennej n może się zmienić w czasie działania programu, dlatego Visual nie skompiluje ci tego typu kodu. Jeżeli chcesz tablice dynamiczne to poczytaj to wskaźnikach, ponieważ wtedy już sam musisz zająć się alokacją i zwalnianiem potrzebnej Ci pamięci.(Słowa kluczowe new i delete)

1 użytkowników online, w tym zalogowanych: 0, gości: 1