2012/3/19 Razvan Deaconescu <[email protected]>: > Mirea Bogdan-Stefan <[email protected]> writes: >> Ce ai tu acolo, este memory leak pentru ca tu ai doar proces parinte, care va >> face exec. Eu ma refeream la cazul in care faci fork. >> Este normal ca in procesul parinte sa eliberezi memoria. Si este oarecum >> normal >> ca si in procesul copil sa trebuiasca eliberata, dar nu cred ca este necesar >> pentru ca tu o sa astepti in parinte terminarea copilului, iar cand >> terminarea >> lui va fi constatata, toata memoria alocata pt el se va elibera. >
La terminarea procesului, sistemul de operare eliberează întreaga memorie alocata unui program - atât cea alocată dinamic, pe heap, cât și secțiunile de date și cod. Prin urmare nu ar mai fi nevoie să le eliberați voi explicit. Din motive didactice, pentru a vă induce mai multă responsabilitate legată de managementul memoriei alocate dinamic, pentru temele de la SO va trebui să eliberați întreaga memorie alocată înainte de terminarea programului. În cazul în care omiteți să faceți acest lucru, veți fi depunctați conform listei de depunctări[1]. Această regulă nu se aplică dacă în programul vostru apare o eroare și iese forțat. De exemplu cazul în care condiția macro-ului DIE este falsă și programul se încheie cu exit(EXIT_FAILURE). Am actualizat acest lucru și în regulament[2]. [1] http://elf.cs.pub.ro/so/wiki/teme/general#lista-depunctari [2] http://elf.cs.pub.ro/so/wiki/reguli-notare#teme-de-casa-1-punct-5-puncte-5-puncte-corelare-punctaj -- Răzvan Crainea _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
