• Viernes 15 de Noviembre de 2024, 05:04

Autor Tema:  Calloc Vs Malloc  (Leído 4495 veces)

Rataman

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Calloc Vs Malloc
« en: Lunes 7 de Junio de 2004, 14:37 »
0
Buenas, he utilizado la busqueda para ver si habia algun tema para hacer matrices dinamicas, y he encontrado uno para hacerlo con la funcion calloc(). Y por otra parte he mirado en un libro de C y he visto que se puede hacer con malloc().

Mi duda es que no se la diferencia real entre estas dos funciones, y me gustaria saber si existe en C++ una manera diferente de hacer matrices dinamicas  :hola:

Jevi

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
    • http://jevi.ods.org
Re: Calloc Vs Malloc
« Respuesta #1 en: Lunes 7 de Junio de 2004, 15:16 »
0
Cita de: "Rataman"
Mi duda es que no se la diferencia real entre estas dos funciones
Hola,

respondiendo a la duda de las diferencias entre malloc y calloc

Por lo que yo se las diferencias principales, a parte de la sintaxis:

* malloc no inicializa la porción de memoria asignada y calloc si.
* malloc asigna memoria para un sólo objeto. El tamaño de la memoria a adjudicar se indica en la función (void *malloc(size_t tamanyo);). calloc asigna memoria para un array de elementos especificados en la función ()void *calloc(size_t nmemb, size_t tamanyo);. El tamaño de la memoria a adjudicar se indica en la función.

Las dos funciones retornan un puntero nulo (en caso de error) o un puntero a la posición de memoria utilizada.

Espero que esto te sirva de algo.
El software es como el sexo, es mejor cuando es gratis. (Linus Torvalds)

Rataman

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: Calloc Vs Malloc
« Respuesta #2 en: Lunes 7 de Junio de 2004, 15:28 »
0
:smartass:  gracias

Noel Solw

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Calloc Vs Malloc
« Respuesta #3 en: Lunes 7 de Junio de 2004, 15:42 »
0
Con respecto a tu pregunta, en C++ suele usarse new y delete.

Rataman

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: Calloc Vs Malloc
« Respuesta #4 en: Martes 8 de Junio de 2004, 21:02 »
0
Ya he encontrado como hacer una matriz dinamica en C++, por si a alguien le interesa:

Código: Text
  1.  
  2. #include <iostream.h>
  3. #include <stdlib.h>
  4.  
  5. main()
  6. {
  7.   int x,y,**matriz;
  8.   cout<<"Indica el tamaño del tablero: ";
  9.   cin>>x>>y;
  10.   matriz=new int*[x];
  11.   for(int i=0;i<=x;i++)
  12.       matriz[i]=new int[y];
  13. }
  14.  
  15.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Calloc Vs Malloc
« Respuesta #5 en: Miércoles 9 de Junio de 2004, 13:56 »
0
new y delete solo tienen sentido para crear objetos ya que el compilador llama a su constructor/destructor; el operador new en si no es más que un wrapper de malloc (que a su vez en Windows es un wrapper de HeapAlloc).


Run Time Library de VC++:

void * operator new( unsigned int cb )
{
        return _nh_malloc( cb, 1 );
}


 :ph34r:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.