Download - Laborator 9 Alocare Dinamica
Alocarea dinamic a memoriei
Alocarea dinamic a memoriei stdlib.h : funcii standard utilizate pentru alocarea dinamic a memoriei; zona de memorie HEAP; malloc, calloc, realloc;
void * malloc ( size_t size );
void * calloc ( size_t num, size_t size );
void * realloc ( void * ptr, size_t size );
Observaie:Fiecare dintre funciile de alocare ( malloc, calloc, realloc) va returna adresa zonei de memorie alocata ( void * ). In cazul n care acesta nu poate fi alocat, atunci rezultatul alocrii este NULL.
La apelul fiecrei funcii se va utiliza:
Operatorul sizeof : determin dimensiunea necesar unui tip de date;
Operatorul de cast pentru conversia adresei primite n urma alocrii ( void * ) la tipul de date care va fi memorat la adresa respectiv.
Exemple://malloc alocarea dinamica a ununi element de tip int#include
#include
int main()
{
int *p;
p = ( int *)malloc(sizeof(int ));
if( p == NULL){
printf("Eroare la alocarea de memorie!");
return 1;
}
*p = 10;
printf("%d", *p);
free(p);
return 0;
}
//calloc
//vector alocat dinamic( cu numarul de elemente cunoscut)
#include
#include
int main()
{
int *p,n;
int i = -1;
printf("Introduceti numarul de elemente: ");
scanf("%d",&n);
p = (int*)calloc(n,sizeof(int));
if ( p == NULL){
printf("Eroare la alocarea de memorie!");
return 1;
}
printf("\nIntroduceti elementele:\n");
for(i = 0; i