SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: bob esponja en Lunes 28 de Febrero de 2005, 00:05

Título: Malloc Y New
Publicado por: bob esponja en Lunes 28 de Febrero de 2005, 00:05
pregunta:
   es lo mismo

   char ** tokens;
   tokens = new char * [ numTok ];

   que
   char ** tokens;
   tokens = ( char ** ) malloc( numTok );

y

   tokens[ numTok ] = ( char * ) malloc( end - start + 1 );

   que

   tokens[ numTok ] = new char [ (end - start + 1) ];

   porque con new me funciona y con malloc no...

   gracias.
Título: Re: Malloc Y New
Publicado por: rir3760 en Lunes 28 de Febrero de 2005, 01:52
Cuando utilizas la funcion malloc tienes que indicar el numero de bytes, en tu caso solo estas indicando el numero de elementos. En C estandard se utilizaria:

Código: Text
  1. puntero = malloc(sizeof(char *) * numero_de_elementos);
  2.  

Un saludo
Título: Re: Malloc Y New
Publicado por: eliza_marti en Lunes 28 de Febrero de 2005, 04:16
Hola Bob Esponja… :hola: ....la función malloc y free son utilizadas en C y vienen incluidas en la librería <alloc.h>…mira si tienes declarada esa librería…puede ser por eso que no te funcione...ahora la función new y delete son de C++ y vienen incluidas inmediatamente…... no se necesita ningún archivo de cabecera.... :)

Espero que te pueda servir de referencia  :P …Bye!..  :hola:  :sorcerer: