Como saber si un puntero fue inicializado?

Started by JaViS, June 10, 2013, 12:40:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS


Buenas gente.


Tengo un puntero al cual quiero alojar memoria dinamicamente, pero necesito saber si ya se alojo memoria o si va a ser la primera vez (para poder redimencionarlo)


¿hay forma de saber eso?


gracias
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

no hace falta saberlo... si lo declaras como NULL (en la declaracion), ya puedes redimensionarlo sin preocuparte.... cuando el puntero es NULL el realloc es como un alloc.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.

JaViS

Otra preguntonta:


cuando quiero calcular el tamaño que debe tener el puntero al hacerle realloc hago lo siguiente:


sizeof(puntero) + sizeof(_tipoitem)


lo que me lleva a la pregunta:


sizeof(puntero) cuando puntero = null devuelve cero?

gracias!
Working on Anarkade. A couch multiplayer 2D shooter.

Drumpi

puntero = NULL;
say (sizeof(puntero));

Son preguntas sencillas de fácil comprobación, pero lo se, da palo programarlo para algo tan simple (pero como llevas sin respuesta desde el día 10...).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Arcontus

Quote from: JaViS on June 10, 2013, 04:03:08 PM
Otra preguntonta:


cuando quiero calcular el tamaño que debe tener el puntero al hacerle realloc hago lo siguiente:


sizeof(puntero) + sizeof(_tipoitem)


lo que me lleva a la pregunta:


sizeof(puntero) cuando puntero = null devuelve cero?

gracias!

Yo creo que no te dará 0, por que lo que estás haciendo con el sizeof es que te de el tamaño de memoria que ocupa la variable "puntero", independientemente de cual sea el valor que contenga. A diferencia de una variable declarada como tipo básico (int, char, ...) los punteros ocuparán lo mismo independientemente del tipo de puntero.

Sería como hacer algo así:
int var;
...
var = 0;
sizeof(var); // no devolverá 0, sino el espacio que ocupa un INT en memoria.

Un saludo!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.