Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Deklarowanie tablicy o wielkości zmiennej

Ostatnio zmodyfikowano 2013-02-16 23:17
Autor Wiadomość
Dubler
Temat założony przez niniejszego użytkownika
[c++] Deklarowanie tablicy o wielkości zmiennej
» 2013-02-16 23:02:32
kod:
       len = c.ReadMemoryInt(lPacketSize,4);
       char digest[len] = c.ReadMemoryBytes(lP,(uint8_t*&)len);

skutkuje tym że "digest" może nie zostać zainicjowany. Używam GCC. Ktoś wie jak to ogarnąć?
P-76421
Monika90
» 2013-02-16 23:17:48
W standardowym C++ nie ma tablic o rozmiarze znanym tylko w czasie wykonania, tzn. rozmiar musi być znany podczas kompilacji. GCC udostępnia takie tablice (zwane VLA) jako niestandardowe rozszerzenie języka, czyli ich używanie jest nieprzenośne i w złym stylu. W C++ masz std::vector<char>, albo std::unique_ptr<char[]>.

No ale jeżeli musisz używać VLA, to wiedz że tablic nie można zainicjalizować w sposób w jaki to robisz, raczej powinieneś przekazać wskaźnik do pierwszego elementu tablicy i jej rozmiar do jakiejś funkcji, która wypełni tablicę danymi.
P-76422
« 1 »
  Strona 1 z 1