C/Visual C - Una para expertos

 
Vista:

Una para expertos

Publicado por Omar Olivas (1 intervención) el 18/10/2000 00:00:00
Como puedo saber la cantidad de bytes que se le han asignado a un apuntador, por ejem. char*
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:Una para expertos

Publicado por Pedro Pablo (37 intervenciones) el 19/10/2000 00:00:00
Con instrucciones de C no se puede (sizeof(ptr) te dará el hueco ocupado por el puntero, no por lo apuntado por él).

Una vez oí que en C++ la dimensión se guarda un entero antes al comienzo del hueco reservado para el programador. Pero eso dependerá del compilador, supongo, y nunca lo he probado. Además, no es muy aconsejable utilizar esas cosas en el propio programa, es mejor almacenar ese tipo de información en otras variables, si es que son necesarias.
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:Una para expertos

Publicado por chuidiang (6 intervenciones) el 11/11/2000 00:00:00
En c++ es posible redefinir new y delete de esta forma

void *new (size_t tamano) { return malloc (tamano); }

void *new[] (size_t tamano) { return malloc (tamano); }

void delete (void *puntero) { free (puntero) };

void delete[](void *puntero) { free (puntero) };


Nadie te impide meter en estas funciones (respetando eso que ya esta puesto), algo mas de codigo y llevar tu una pequeña contabilidad de punteros reservados, tamaños reservados para ellos y consultas de esos tamaños.
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