This is an old revision of the document!


Laboratorul 08 - Alocare dinamică

În acest laborator veţi învăţa să:

  • Alocaţi dinamic memorie folosind funcţiile malloc, calloc şi realloc
  • Folosiţi funcţia strdup pentru a clona şiruri de caractere
  • Eliberaţi memoria alocată folosind funcţia free.

Funcţii pentru alocarea memoriei (din stdlib.h):

  • malloc
type* ptr = malloc(size_t size);

Unde size_t este un tip întreg fără semn (unsigned), dependent de arhitectură (pentru arhitectura 32bit, acesta este unsigned int).

Funcţia alocă o zonă continuă de memorie având dimensiunea de size octeţi şi returnează un pointer void* cu adresa de început a zonei de memorie alocată. Pentru a schimba tipul acestui pointer se foloseşte operatorul cast.

Exemplu:

int *a = malloc( 100 * sizeof(int) );

Am alocat o zonă de memorie de 100 de elemente de tip int. Tipului pointerului returnat de funcţie, void*, i se face cast automat în int*.

Funcţia sizeof(type) returnează numărul de octeţi ocupaţi de tipul type.

  • calloc
type* ptr = calloc(size_t num, size_t size);
programare-cc/laboratoare/08.1605042485.txt.gz · Last modified: 2020/11/10 23:08 by bogdan.nutu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0