Skip to content

diana389/Memory-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MEMORY MANAGEMENT

S-au executat comenzi pana la intalnirea sirului exit. In cazul insert si insert_at, se declara o structura (new_data), completata prin functia add_new_data, adaugata in vector si apoi eliberata.

add_new_data:

Se adauga "type" in header, dupa care se citesc cele 2 siruri si cele 2 sume corespunzator tipului si se completeaza si variabila "len", care contine dimensiunea lui "data". Datele se copiaza cu memcpy in "data".

add_last:

In functie de caz, am alocat sau realocat memorie (pentru "len" + dimensiunea datelor pe care urmeaza sa le introduc). Am copiat datele din "header" si din "data" si am revenit cu arr in pozitia initiala.

add_at:

Am verificat cazul in care indexul este mai mic decat 0, iar daca da am returnat 0. Am initializat "contor" cu 0 pentru a numara cate elemente sunt pana in pozitia curenta, dupa care am parcurs vectorul, avand ca si conditie de oprire ori egalitatea dintre "contor" si "index", ori depasirea lungimii vectorului (prin variabila "currenr_len_arr"). Daca este indeplinita cea de-a doua conditie, datele se introduc la sfarsit (functia add_last), iar daca nu, am realocat memorie cat sa incapa si noile date si le-am copiat la fel ca in add_last, la "arr + current_len_arr", dupa ce am mutat toate datele urmatoare spre dreapta.

find:

In mod asemanator am procedat in prima parte, mutand "arr" pe pozitia unde se incep datele cautate si am apelat functia print pentru "elem_len" - dimensiunea elementului cautat, pentru a il afisa doar pe acesta.

delete_at:

In mod asemanator am procedat si pentru aceasta functie pentru a afla "contor" si "current_len_arr" si pentru a verifoca cele doua cazuri (in care indexul este mai mic decat 0 si in care depaseste numarul de elemente). Altfel, am copiat datele de dupa element spre stanga, peste acesta, dupa care am realocat memorie, tinand cont ca exista cu un element mai putin, si am marcat acest lucru si micsorand "len".

print:

In aceasta functie am folosit un while, avand conditia de oprire sa nu se depaseasca lungimea vectorului. In fiecare iteratie am parcurs elementul si am afisat datele acestuia, tinand cont de tipul sau si deplasand "arr"-ul. La sfarsit, am adus "arr" in pozitia initiala.

Releases

No releases published

Packages

No packages published