[c++] Deklarowanie tablicy o wielkości zmiennej
Ostatnio zmodyfikowano 2013-02-16 23:17
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ąć? |
|
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.
|
|
« 1 » |