C/Visual C - Expliquenme porfavor calloc y malloc???

 
Vista:

Expliquenme porfavor calloc y malloc???

Publicado por J. Roman (15 intervenciones) el 01/06/2001 23:21:10
Hey que tal, necesito que porfavor alguien que sepa estas funciones me explique porfavor su uso ya que he leido acerca de estas funciones (malloc y calloc) y todavia no me ha quedado claro.

Cualquier ayuda se las agradecere.

Ahhh y si pueden ponerme un ejemplo de como se reservaria memoria para un arreglo en el que voy a guardar un string.

Gracias !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Expliquenme porfavor calloc y malloc???

Publicado por joshua ramirez (43 intervenciones) el 01/06/2001 23:28:03
Hola que tal, malloc y calloc t esirves para reservar memoria a una variable.

Primero lo que tienes que hacer es declarar un puntero tipo void hacia nada Ok.
luego la misma sintaxis de calloc y malloc haran la conversion de tipo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Expliquenme porfavor calloc y malloc???

Publicado por Germán B. (143 intervenciones) el 02/06/2001 03:33:57
Es muy simple, estas funciones retornan una dirección donde se reserva determinada cantidad de memoria, y este valor debe ser asignado a un puntero. Puede reservarse memoria para cualquier tipo de dato. Ejemplo para un string:

char *s; // puntero a char que no apunta a nada en particular

s=(char *) malloc(30);
strcpy(s, "este es un string";

La función retorna un puntero a void, por prolijidad usamos un cast (char *) para asignarlo al puntero char. La cantidad de memoria a reservar (30) es en bytes. Lo normal es especificar la cantidad de memoria con un sizeof() del tipo de elemento multiplicado por la cantidad de elementos deseados, p/ej:

s=(char *) malloc (sizeof(char) * 30);

Pero como sabemos que 1 char es 1 byte en este caso no es tan importante. El puntero 's' ya está listo para ser usado como array, como si hubieras declarado char s[30]. Cuando no se necesite más esa memoria, hay que liberarla con la función free(s).

Un ejemplo con otro tipo de dato:

struct pirulo {
int a;
float b;
char c[44];
};
struct pirulo *p;

p=(struct pirulo *) malloc(sizeof(struct pirulo) * 3); // memoria para 3 elementos de ese tipo

...

free(p);

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agradecimientos !! =)

Publicado por J. Roman (15 intervenciones) el 04/06/2001 16:46:35
Hola, quiero darle las gracias a:
Bleach
Germán B.

Por su ayuda, ahora he comprendido mas el uso y la forma de la utilizacion de mallco y calloc.

Gracias,

Atte, J. Roman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Expliquenme porfavor calloc y malloc???

Publicado por Bleach (29 intervenciones) el 04/06/2001 10:08:50

Hola que tal:

Ademas de lo dicho anteriormente, las dos funciones sirven para reservar memoria, la primera malloc, en el parametro le dices cuanta
memoria quieres, en calloc, le dices el numero de elmentos y el tamaño de cada elemento, tambien dice la ayuda que rellena con
ceros cada elemto.
El ejemplo del struct quedaria
typedef struct {
.....
} TTipo;

TTipo *p,*q;

p=(TTipo *) malloc(30*sizeof(TTipo));
q=(TTipo *) calloc(30,sizeof(TTipo));

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Expliquenme porfavor calloc y malloc???

Publicado por Elena (2 intervenciones) el 06/06/2001 12:03:11
Solo añadir que utilizando calloc puedes saber exactamente cuanta memoria vas a necesitar (multiplicas el numero de elementos
por su tamaño) mientras que con malloc no.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar