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

wazer | 2021-02-17 10:25:18 UTC | #1

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 <iostream>

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 | 2020-11-11 22:05:49 UTC | #2

[quote=”wazer, post:1, topic:16689”]
jak to jest z tymi tablicami?
[/quote]

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 | 2021-02-17 10:31:43 UTC | #3

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