Wpis z mikrobloga

#programowanie #cpp

http://stackoverflow.com/questions/4707012/is-it-better-to-use-stdmemcpy-or-stdcopy-in-terms-to-performance

Może mi ktoś wyjaśnić co się o------o w tej linijce?

bits = new (std::nothrow) char[((int *) copyMe->bits)[0]];


O ile std::nothrow sobie sprawdziłem, to to co widzę w nawiasach na prawo od char to po prostu nie wiem co robi. Rzutuje jakieś coś na wskaźnik typu int i ma coś w stylu char [int* [0]]. Co to za konstrukcja?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: rzutuje cos na eskaznik do int, i poniewaz jest to zdaniem programisty tablica to pobiera zerowy element, i ten wlasnie zerowy element ma byc rozmiarem tablicy charow( ͡° ͜ʖ ͡°)
  • Odpowiedz
@ulises: Ok, już to widzę teraz. Ale zastanawiam się czy się nie dało tego zrobić w bardziej ludzki sposób, bo to wygląda makabrycznie.
  • Odpowiedz
@ulises: Komentarz powinien chociaż być po prawo co dzieje się w środku. Widzę ogólnie czemu to jest zrobione tak jak jest zrobione - ma jakąś byteArray z której chce wyciąć pierwsze 4 bajty i zrobić z tego rozmiar tablicy charów (prawdopodobnie pierwsze 4 bajty tej tablicy są nagłówkiem mówiącym o rozmiarze). Może jest to trochę nieintuicyjne przy pierwszym spojrzeniu, ale czemu miałoby nie przejść przeglądu?
  • Odpowiedz