This shows you the differences between two versions of the page.
programare:good-practices [2020/10/07 17:55] darius.neatu |
programare:good-practices [2020/10/07 18:26] (current) dorinel.filip [Memory leaks] |
||
---|---|---|---|
Line 7: | Line 7: | ||
- | În această ghid facem o trecere în revistă a câtorva bune practice și erori frecvente de codare în limbajul C. | + | În aceast ghid facem o trecere în revistă a câtorva bune practice și erori frecvente de codare în limbajul C. |
===== Erori frecvente în alocarea de memorie și lucrul cu fișiere ===== | ===== Erori frecvente în alocarea de memorie și lucrul cu fișiere ===== | ||
Line 23: | Line 23: | ||
<note warning>Atunci când folosim memorie alocată dinamic (cu ''malloc(...)'', ''calloc(...)'' etc.) trebuie să avem în vedere să și dealocăm memoria atunci când nu o mai folosim!</note> | <note warning>Atunci când folosim memorie alocată dinamic (cu ''malloc(...)'', ''calloc(...)'' etc.) trebuie să avem în vedere să și dealocăm memoria atunci când nu o mai folosim!</note> | ||
- | Prin utilizarea utilitarului [[https://valgrind.org|Valgrind]] checker-ul folosit la notarea automată a temelor poate descoperi execuțiile care lasă memorie nedealocată, iar acest lucru va fi depunctat, conform enunțului temei repective. | + | <note>Prin utilizarea utilitarului [[https://valgrind.org|Valgrind]] checker-ul folosit la notarea automată a temelor la Seria CA poate descoperi execuțiile care lasă memorie nedealocată, iar acest lucru va fi depunctat, conform enunțului temei repective.</note> |
==== Neînchiderea fișierelor ==== | ==== Neînchiderea fișierelor ==== | ||
Line 101: | Line 101: | ||
scanf("%d", &n); | scanf("%d", &n); | ||
- | while(n < 0 || n > MAX_SIZE) { | + | while(n <= 0 || n > MAX_SIZE) { |
- | printf("Numarul este prea mare, te rog introdu un nr. din [0, %d]\n", MAX_SIZE); | + | printf("Numarul este prea mare, te rog introdu un nr. din (0, %d]\n", MAX_SIZE); |
scanf("%d", &n); | scanf("%d", &n); | ||
} | } | ||
Line 118: | Line 118: | ||
scanf("%d", &n); | scanf("%d", &n); | ||
- | while(n < 0) { | + | while(n <= 0) { |
printf("n trebuie sa fie un numar pozitiv. Reincearca!\n"); | printf("n trebuie sa fie un numar pozitiv. Reincearca!\n"); | ||
scanf("%d", &n); | scanf("%d", &n); |