-
Data: 2010-02-18 10:07:38
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Łukasz 'Maly' Ostrowski" <m...@U...pl> napisał w wiadomości
news:ooc6nc4igkw0.gfm4k8thtl9k.dlg@40tude.net...
> On Thu, 18 Feb 2010 09:40:47 +0100, GrzybSon wrote:
>
>> Użytkownik "Jędrzej Dudkiewicz" <j...@g...com> napisał w
>> wiadomości news:hlh87d$ngd$1@news.onet.pl...
>>> Ale przecież w tym przypadku to jest zawsze prawda, to po co ten warunek
>>> tam umieszczać?
>>
>> Racja.
>> Wkońcu skonsultowałem się ze specem od C++ i okazuje się, że unia zawsze
>> ma
>> wypełnione struktury domyślnymi wartościami
>
> Huh? Kto jest rzekomym specem od C++? Sprzątaczka firmowa? ;-)
Sprzątaczka programuje tylko ... pralki :)
Widzę
>
> W czymkolwiek bez explicit inicjalizacji będą śmieci z memory
> allokatora.
>
>> (inaczej jest w C#),
>
> Unie w C#? Czy "inaczej" == "struktury NIE SĄ inicjowane domyślnymi
> wartościami w C#"? Pogrąża sie Kolega powoli, acz stopniowo.
Nie pogrążam tylko nie zakumałeś o czym mowa:
struct TopStruct
{
int i;
string komunikat;
NestedStruct nested;
}
struct NestedStruct
{
InnerStruct inner;
}
jeżeli teraz wykonam taki kod
TopStruct str = new TopStruct();
to komunikat będzie nullem
tak samo jak nested
i będzie miało wartość 0
Inaczej to wygląda w C++ gdzie po wywołaniu memseta na TopStruct zostaje
odrazu wypełniona wartościami cała struktura
TopStruct razem z jej zagnieżdżeniami. Może i tam są śmieci, ale jakieś
wartości są.
>
>> więc to sprawdzenie rzeczywiście nie ma sensu. Jedynie
>> co muszę zrobić to sprawdzać poszczególne pola w strukturze czy są
>> zainicjowane jakimiś sensownymi wartościami (mówię tu np. o char *, który
>> jest odpowiednikiem stringa w .NET).
>
> Monte-Carlo? Prawopodobnie jak już sie trzeba pchać w wątpliwe rozwiązania
> to lepiej to zrobić jakimś sprawdzonym patternem:
>
> http://en.wikipedia.org/wiki/Tagged_union
>
> Czyli "przekazywać dodatkowe info który variant jest obowiązujący".
>
> A najlepiej to przemyśleć całość od nowa. ;-).
>
> --
> Pozdrawiam,
> Łukasz 'Maly' Ostrowski. http://l3v.pl/
> ICQ: 148498663 GG: 2544385 AIM: malyzgora
> GTalk: l...@g...com ASTRA: L3viathan
Następne wpisy z tego wątku
- 18.02.10 10:09 GrzybSon
- 18.02.10 11:54 Łukasz 'Maly' Ostrowski
- 18.02.10 12:34 GrzybSon
- 18.02.10 12:43 Łukasz 'Maly' Ostrowski
- 18.02.10 12:55 GrzybSon
- 18.02.10 13:15 Łukasz 'Maly' Ostrowski
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-30 Moduł BT BLE 5.0
- 2024-12-30 Łódź => Application Security Engineer <=
- 2024-12-30 Lublin => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-30 Nowy Outlander PHEV w PL
- 2024-12-30 Warszawa => Key Account Manager <=
- 2024-12-30 Katowice => Key Account Manager (ERP) <=
- 2024-12-28 Śmiechu KOOOOOOPA ;-)
- 2024-12-29 Pomiar amplitudy w zegarku mechanicznym
- 2024-12-28 Antyradar
- 2024-12-28 Deweloper przegral w sadzie musi zwrócic pieniądze Posypia sie kolejne pozwy?
- 2024-12-28 Warszawa => Full Stack .Net Engineer <=
- 2024-12-28 Warszawa => Sales Assistant <=
- 2024-12-28 Warszawa => Programista Full Stack .Net <=
- 2024-12-28 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-28 Katowice => Head of Virtualization Platform Management and Operating S