[un/loquer] Ayuda con c++
Rafael Vega
email.rafa en gmail.com
Jue Oct 10 01:39:28 UTC 2013
El asunto es este:
* **color1** = **255**;*
* ***pcolor1** = **color1**;*
Ahi estás diciendo "Meta el valor 255 en la posición de memoria a la que
apunta pcolor1" (el * es equivalente a "lo que hay en"). Hasta ahi todo
bien, el compilador no pone problema.
Sin embargo, cuando el programa corre y trata de meter el valor 255 a donde
sea que esté apuntando pcolor1.... Hey!!! a donde está apuntando
pcolor1???? No se sabe! no lo has inicializado. Puede que esté apuntando
a la dirección 0x87FA32, o a la dirección 0x00. Lo mas probable es que
apunte a una dirección de memoria a la que tu programa no tiene acceso.
Cuando eso pasa, el sistema operativo dice: "Oeoeoeoeoe!!! pa donde va!!!
esa memoria no es suya!!!" y mata el programa.
La solución es decir: "pcolor1, apunte a la dirección de memoria donde
está almacenado el color1", usando el operador "&" (dirección de). Asi:
color1 = 255;
pcolor1 = &color1;
Y luego: "Meta el valor 87 a donde esté apuntando pcolor1":
*pcolor1 = 87;
Salud!
Rafa.
2013/10/9 Johnny sepulveda <johnnyalexandersepulveda at gmail.com>
> Hola a todos.
>
> Escribo porque ando estudiando c++, y pues no entiendo muy bien algo que
> me dice el compilador.
> Les describo el problema.
> Tengo una variable int color en una clase llamada Circulo.h y un puntero
> apuntando valga la rebundacia a esa variable.
> Esta es la pinta que tiene la variable y el puntero.
>
> int color1;
> int* pcolor1;
>
> Ahora en el .cpp del .h del Circulo los tengo definidos asi.
>
> *Circulo**::**Circulo**()*
>
> *{*
>
> * **//inicializamos las variables*
>
> * **radio** = ((**ofGetWidth**() + **ofGetHeight*
> *()) / **20**) - **10**; *
>
> * **posX** = **300**; *
>
> * **posY** = **200**; *
>
> * **velX** = **2.5**;*
>
> * **velY** = **2.2**;*
>
> * **dirX** = **1**;*
>
> * **dirY** = **1**;*
>
> * **color1** = **255**;*
>
> * **color2** = **234**;*
>
> * **color3** = **45**;*
>
> * ***pcolor1** = **color1**;*
>
> * ***pcolor2** = **color2**;*
>
> * ***pcolor3** = **color3**;*
>
> *}*
> Ahora, el compilador no me arroja ningun error, me dice algo con Thread
> que no entiendo muy bien.
> SI Brol o Rafa me pueden ayudar, aunque se que andan cortos de tiempo les
> agradeceria demasiado, estoy desde las 2 pm tratando de resolver esto pero
> no soy capaz de rendirme.
> Anexo un pantallazo tambien.
> Mil gracias de nuevo. !
>
> --
> Johnny
> ---------------------------------------------------------------------------
>
>
> _______________________________________________
> unloquer mailing list
> unloquer at lists.aktivix.org
> https://lists.aktivix.org/mailman/listinfo/unloquer
>
>
--
Rafael Vega
email.rafa at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aktivix.org/pipermail/unloquer/attachments/20131009/61930576/attachment.html>
Más información sobre la lista de distribución unloquer