Wpis z mikrobloga

Drodzy mirkowie !
Mam taki oto kod:

char cryptedMessage[] = {};
std::cin >> cryptedMessage;
std::cout << sizeof(cryptedMessage);

Jak widać definiuję sobie tablicę, do której później zapisuję tekst. Następnie sprawdzam ile on zajmuje i ku mojemu zaskoczeniu wyskakuje 0. Ktoś mi może wyjaśnić dlaczego?
#cpp #naukaprogramowania
  • 16
@TMBRK: Nie podajesz rozmiaru tablicy (w nawiasach prostokątnych), więc kompilator ustala rozmiar na podstawie zawartości nawiasów klamrowych. Nawiasy puste, więc rozmiar == 0.

Albo zdefiniuj rozmiar bufora (+ w std::cin zabezpieczenie przed przekroczeniem), albo użyj std::string.
char cryptedMessage[] = {};


@TMBRK: przy takiej konstrukcji nie musisz podawać rozmiaru między kwadratowymi nawiasami, bo kompilator ten rozmiar wyciąga sobie sam na podstawie tego ile elementów zobaczy między klamrami po znaku równości.

Ty nie wrzuciłeś tam ani jednego elementu, więc kompilator stworzył dla Ciebie pustą tablicę.