eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingtypologia errorow aplikacjiRe: typologia errorow aplikacji (a jeszcze leipaj i realoki)
  • Data: 2011-05-05 23:29:22
    Temat: Re: typologia errorow aplikacji (a jeszcze leipaj i realoki)
    Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 04/05/2011 19:49, p...@p...onet.pl wrote:
    >> tamto mowienie o 'wyciekach' na statycznej tablicy mz
    >> mozna porownac do sytuacji gdy nie zwalnia sie juz nie uzywanych
    >> elementow stlowego wektora - to nie sa defakto wycieki tylko zapchanie
    >> sobie kontenera
    >
    > te dwie rzeczy tj 'niepoodznaczanie rekordow w tablicy' i
    > 'leaki w systemach z new' sa jakosciowo tak roznymi rzeczami
    > i roznia sie tak jak Francuz od Czeczena albo Gruszka od Marsa,
    >
    > tak ze ten kto chce tu widziec to samo albo nawet podobne rzeczy
    > robi sobie sadlo z mozgu - nie chce mi sie wymieniac wszystkich
    > ych roznic ale chocby wspomiane ze druga z tych reczy to leaki
    > a pierwsza nie, albo np to ze w systemach z 'new' wyciec moze
    > wszystko, wyciec moze 127 albo ktoras z instancji 16 milionow
    > 777 typow

    Ale co to zmienia? Typ jest tutaj jedynie jakąś konstrukcją na poziomie
    języka, w statycznej tablicy możesz mieć jeden 'typ' w sensie typu C,
    ale ten typ może wyglądać np. tak

    struct Samolot
    {
    unsigned typ_samolotu;
    float wysokość;
    ...
    };

    Wtedy też może wyciec któraś z instancji 16 milionów 777 typów
    reprezentowanych 16 milionów 777 możliwymi wartościami pola typ_samolotu.

    > - gdy w c ze statycznymi tablicami nawet jak ktos zapchalby
    > tablice (a jest to naprawde wyjakowo GRUBY blad i zeby go ZROBIC
    > trzeba sie starac tak samo mocno jak o to by nie zrobic jakiegos
    > leaka bo o to jest dla odmiany nietrudno)

    W zależności jakie masz algorytmy i struktury może być dokładnie tak
    samo łatwo. W ogólnym przypadku będzie to przecież wyglądać tak, że dla
    jakiejś funkcji np.
    int alokuj_samolot()
    będziesz musiał zawołać
    void zwolnij_samolot(int idx);
    jeśli nie zawołasz, to masz "martwy" element w tablicy, którego już nie
    używasz, a który nigdy nie będzie mógł być wykorzystany ponownie na
    zaalokowanie innego samolotu. W czym niby nie wywołanie free dla malloc
    jest łatwiejsze niż nie wywołanie zwolnij_samolot dla alokuj_samolot?

    > to przy probie wstawienia
    > czegos do tej konkretnej tablicy z konkretnymi instancjami konkretnego
    > typu komunikat wypisze jawnie "brak miejsca w tablicy samolotow"

    No a malloc jak zajmiesz całą dostępną pamięć zwróci null, co możesz
    sobie też przecież zamanifestować wypisaniem komunikatu.

    > pozatym te instancje ktore nie sa wylaczone/odznaczone sa po prostu
    > uzywane i to widac

    Do czego są używane? I gdzie to widać?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: