Tema: Win32 Api
Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/10/2006, 00:12
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
WNDCLASSEX wcx;
ZeroMemory(&wcx,sizeof(WNDCLASSEX));

como puedo ver, wcx, no es un puntero, sino una variable estructura, la cual sera iniciada explicitamente campo a campo.
Como ya se te dijo esa razon no tiene ninguna validez. Es mas, es una reverenda estupidez. Da exactamente lo mismo que sea una variable local (¿Variable estructura? ¿Eso tambien lo dice Microsoft? ...). Las variables locales usan la pila y sus datos estan INDEFINIDOS.

Cita:
Iniciado por Nivel7 Ver Mensaje
no veo la necesidad de usar ZeroMemory, ademas de que esta funcion se usa para recervar memoria a punteros y rellenar con 0s.

asi que en este ejemplo es totalmente innecesaria.
ZeroMemory no reserva nada de nada. ¿Eso donde lo vemos en la referencia de malloc? ¿En la real academia tambien ponen recervar? Lo que es innecesario en este ejemplo es poner NULL y 0 en los campos que ya no lo necesitan. ¿Que es lo innecesario acaso? ¿Lo que se hace antes? No, lo redundante es asignar valores que ya tienen a los campos (NULL y 0 en este caso).


Cita:
Iniciado por Nivel7 Ver Mensaje
si estoy en un error, creo que tenemos que avisarle a los de MS, que an estado programando mas al crear una WNDCLASSEX sin usar ZeroMemory();
No es un error sino muchos. Se escribe HAN y no an, reserva y no recerva ... ZeroMemory no reserva absolutamente NADA. Y la verdad es gracioso que uses un ejemplo de Microsoft para intentar sostener una ridiculez de este calibre, en la red tambien hay montones de ejemplos usando ZeroMemory. ¿Funcionan? Si, perfectamente.

"no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros."

En fin ... que no sabes como trabajan las variables locales y yo pierdo el tiempo repitiendo lo mismo a un amateur ...