[so] Depunctare Tema 1
Codrin-Victor Poienaru
cvpoienaru at gmail.com
Wed Apr 1 11:48:33 EEST 2015
Salut Adrian,
Multumesc mult pentru clarificari.
Am considerat scenariul pe care mi l-ai spus pentru leak-uri si am reusit
sa recreez problema. Intr-adevar, eu setam pointerul de start doar in
alloc_bucket, pe care il foloseam o singura data, si anume cand se aloca
bucket-ul. Setarea start-ului trebuia facuta in momentul in care apelam
adaugarea efectiva in bucket, asa cum am facut si in cazul pointer-ului end.
Cat despre valorile de retur, am avut impresia ca in resize, daca nu se
reuseste alocarea, se va returna NULL, insa pentru acest lucru, ar fi
trebuit sa am un "goto exit" in loc de "break" si sa ignor codul de copiere
al hashtable-ului vechi in cel nou.
O zi buna,
Codrin
2015-04-01 9:07 GMT+03:00 Adrian Stanciu <adrian.stanciu.pub at gmail.com>:
> 2015-04-01 0:51 GMT+03:00 Codrin-Victor Poienaru via so <
> so at cursuri.cs.pub.ro>:
> > Salut,
> >
> > In urma corectarii temei, am primit urmatoarele observatii:
> > - leak-uri de memorie
> > - nu sunt verificate toate valorile de retur ale functiilor
> > si as dori o reevaluare.
>
> Salut Codrin,
>
> Am reevaluat tema ta.
>
> >
> > Pentru leak-uri de memorie, am rulat tema mea manual, pentru fiecare din
> > cele 28 de teste publice folosite pentru testare, in valgrind, si se
> pare ca
> > pentru fiecare test aceste leak-uri nu exista defapt. A fost folosit
> cumva
> > alt utilitar pentru detectarea leak-urilor ?
>
> Am folosit tot valgrind, dar am rulat un alt test. Scenariul în care
> aveai probleme era următorul:
> * adaug un cuvânt
> * șterg cuvântul
> * îl adaug iar
>
> > Referitor la valorile de retur ale functiilor, primesc o referinta in
> > hashtable.c de exemplu, in care mi se spune ca eu nu verific rezultatul
> > alocarii hashtable-ului. Verificarea daca s-a reusit sau nu alocarea se
> > realizeaza in main. Acolo aloc un hashtable, si daca nu am reusit,
> afisez un
> > mesaj corespunzator si inchei programul (goto exit). Am considerat
> > nepotrivit sa afisez mesajul de eroare in aceeasi functie care aloca
> > hashtable-ul din considerente de modularizare. In opinia mea,
> printf-urile
> > ar trebui sa se realizeze numai in functia principala (acesta este si
> modul
> > in care am gandit tema, defapt).
> >
>
> Am observat acest lucru dar ți-a scăpat un caz: la operația de resize
> nu verifici dacă alocarea a reușit. Din acest motiv nu am aplicat
> inițial depunctarea completă de 0.2 puncte, ci una mai "blândă" de 0.1
> puncte.
>
> Am pus explicații extra pentru cele două depunctări pe vmchecker [1],
> sper că e mai clar acum. Te rog să le urmărești acolo. Pentru mine
> aceste depunctări sunt corecte astfel încât au rămas în vigoare.
>
> [1] https://vmchecker.cs.pub.ro
>
>
> Adrian
>
--
Codrin-Victor Poienaru
University "POLITEHNICA" of Bucharest
Faculty of Automatic Control and Computer Science
Department of Computer Science & Engineering
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20150401/ae885d1c/attachment.html>
More information about the so
mailing list