1. Che differenze ci sono tra Malloc e Calloc ???
2. Quando si Usa Malloc e quando si usa Calloc ???
1. Che differenze ci sono tra Malloc e Calloc ???
2. Quando si Usa Malloc e quando si usa Calloc ???
PoWered by:
Gentoo 1.5.3 - Kernel 2.6.7
Debian Sid - Kernel 2.6.7 - Bash 3.0
Slackware current - Kernel 2.6.7
1. Che differenze ci sono tra Malloc e Calloc ???
Malloc alloca e basta.
Calloc alloca e imposta tutto a 0
2. Quando si Usa Malloc e quando si usa Calloc ???
Calloc la usi quando vuoi essere sicuro di avere i dati a 0.
Se no usi malloc+memset.
Cmq ti allego un mio wrapper di calloc/malloc e free che ho studiato in base a quello che dice il manuale delle GNU libc
codice:/* Name: xmalloc.h * Description: This is a wrappers for the ANSI/ISO function malloc, realloc and free * Autor: Kleidemos * Date : 12/04/2004 */ #include <malloc.h> void *xmalloc(size_t); void *xrealloc (void *, size_t ); void xfree(void *); void *xmalloc(size_t size) { register void *value = malloc(size); if (value == 0) puts("Memory exhausted to use xmalloc()\n"); return value; } void *xrealloc(void *ptr, size_t size) { register void *value = realloc (ptr, size); if (value == 0) puts("Memory exhausted to use xrealloc()\n"); return value; } void xfree(void *ptr) { free(ptr); }
La stupidità umana e l'universo sono infinite.
Della seconda non sono certo(Einstein)
Gnu/Linux User
Grazie Mille...
PoWered by:
Gentoo 1.5.3 - Kernel 2.6.7
Debian Sid - Kernel 2.6.7 - Bash 3.0
Slackware current - Kernel 2.6.7
in realta c'è anche un'altra differenza
malloc alloca un'area unica grande n*sizeof(qualcosa)
calloc alloca n spazi singoli, ciascuno grande sizeof(qualcosa)
in pratica nn si sente molto questa differenza![]()
Live fast. Troll hard.
Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
Team Lead @Gameloft Barcelona
Io spesso uso malloc così:
variabile = (tipo *)malloc(sizeof(tipo));
non specifico n*sizeof(tipo)!!!
Questo per motivi di dinamicità!!! Non so mai quanti elementi allocare quindi anche se quello che sto creando è un vettore (che di solito vuole la sua dimensione) utilizzo la bella proprietà della lista che non ha "limite" di grandezza!!!