eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingtypologia errorow aplikacjiRe: typologia errorow aplikacji (a jeszcze leipaj i realoki)
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Andrzej Jarzabek <a...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: typologia errorow aplikacji (a jeszcze leipaj i realoki)
    Date: Fri, 06 May 2011 00:29:22 +0100
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 58
    Message-ID: <ipvbsi$svr$1@inews.gazeta.pl>
    References: <5...@n...onet.pl>
    <5...@n...onet.pl>
    NNTP-Posting-Host: 5acd7098.bb.sky.com
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1304638162 29691 90.205.112.152 (5 May 2011 23:29:22 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Thu, 5 May 2011 23:29:22 +0000 (UTC)
    X-User: septi
    In-Reply-To: <5...@n...onet.pl>
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.17)
    Gecko/20110414 Thunderbird/3.1.10
    Xref: news-archive.icm.edu.pl pl.comp.programming:190145
    [ ukryj 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: