C++ czy rozmiar tablicy musi być stałą znaną w trakcie kompilacji

Pytania i problemy
cpp
wazer
wazer

W wielu miejscach pisze że rozmiar tablicy musi być znany w trakcie kompilacji, ale spróbowałem utworzyć tablice o rozmiarze wpisanym przez użytkownika i działa

#include 

using namespace std;

int main() {
    int a;
    cin >> a;
    int tabl[a];
    for (int i = 0; i < a; ++i) {
        cout << i << ':';
        cin >> tabl[i];
    }
    for (int i = 0; i < a; ++i) {
        cout << i << ':' << tabl[i] << endl;
    }
    return 0;
}

jak to jest z tymi tablicami?

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

wazer:

jak to jest z tymi tablicami?

Wsparcie zależy od kompilatora. Fakt, że twój kod się skompilował i działa wynika z faktu, że domyślnie GCC (G++) wspiera zmienne przy deklaracji rozmiaru tablicy. Zapewne to był kompilator, którego użyłeś.

Sam standard, na czym buduje się tak zwaną teorię, jednak nie przewiduje czegoś takiego. A generalnie to w bardziej sensownych rzeczach niż proste zadanka używa się np. std::vector jeśli potrzebujemy dynamicznego rozmiaru.

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.