9. előadás
Dinamikus memóriakezelés
malloc: dinamikus memória foglalása- használat után szükséges a memória visszaadása
void alloc1(int nelem){
void * ptr = malloc(nelem * sizeof(int));
if ( NULL != ptr ){
/* sikeres memóriafoglalás */
int * ip = (int *)ptr; /* típushelyes használat */
free(ip); /* memódia visszaadása */
}else{
/* memóriafoglalás sikertelen volt */
}
}
calloc: dinamikus memória foglalása és inicializálása- Paraméterei: elemek száma, elemek mérete
void alloc2( int nelem)
{
void *ptr = calloc( nelem, sizeof(int) );
if ( NULL != ptr )
{
/* sikeres memóriafoglalás, csupa zéró */
int *ip = (int *) ptr;
/* memória ip-n keresztüli típushelyes használata */
free( ip ); /* memória visszaadása */
}
else
{
/* memóriafoglalás sikertelen volt */
}
}
Ha nem adjuk vissza a memóriát, akkor a változó nem lesz elérhet, DE továbbra is foglalja a memóriát -> memory leak