[so] [Tema1]

Mihai Barbulescu b12mihai at gmail.com
Tue Mar 8 14:26:54 EET 2016


On 8 March 2016 at 13:48, Raluca Caciula via so <so at cursuri.cs.pub.ro> wrote:
> Buna ziua,
>
> Am testat, (pentru fiecare test) tema si outputul dat de valgrind este:
> ==7957== Memcheck, a memory error detector
> ==7957== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
> ==7957== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
> ==7957== Command: ./tema1 56 ./_test/inputs/test1.in
> ==7957==
> ==7957==
> ==7957== HEAP SUMMARY:
> ==7957==     in use at exit: 0 bytes in 0 blocks
> ==7957==   total heap usage: 5 allocs, 5 frees, 1,056 bytes allocated
> ==7957==
> ==7957== All heap blocks were freed -- no leaks are possible
> ==7957==
> ==7957== For counts of detected and suppressed errors, rerun with: -v
> ==7957== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
>
> Pentru tratarea erorilor am folosit functia DIE(), insa daca a aparut o
> eroare,
> nu mai realizez dezalocarea memoriei alocate pana in momentul de fata. Este
> aceasta o
> problema?
>

Intr-adevar, daca folosesti DIE (sau assert) nu se elibereaza corect
toata memoria in majoritatea cazurilor. Cel mai corect mod este cel
indicat aici [1]. Din punctul meu de vedere, verificarea fiecarui apel
de sistem dupa erori e mai important decat eliberarea resurselor.
Totusi sa tii minte, pe viitor, ca in unele sisteme a nu aborda ca in
[1] te poate costa (in cel mai fericit caz!) un reboot al sistemului,
ceea ce nu e niciodata placut :)

Asigura-te ca daca codul tau nu intoarce nici o
eroare/exceptie/DIE/assert toate resursele sunt eliberate si nu vom
depuncta in acest caz.

[1] http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/die#alta_abordare

-- 
Cu stimă,
Mihai Bărbulescu


More information about the so mailing list