[un/loquer] Ayuda con c++

Rafael Vega email.rafa en gmail.com
Jue Oct 10 02:00:31 UTC 2013


Esto es un ejercicio de entender punteros?  Si no, no te compliques la vida
y escribí:

color1 = 255;

y ya! :)


2013/10/9 Johnny sepulveda <johnnyalexandersepulveda at gmail.com>

> YEAH!!!!
> Solucionado.
> Mil gracias rafa y brol.
> El error era exactamente lo que me comentaban Brol y Rafa.
> Les comparto mi experiencia aunque ustedes ya la hayan vivido! :P
> despues de definir las variables, estaba haciendo esto
> *pcolor1 = &color1;
> lo cual daba un error porque el asterisco antes de pcolor no va, y me puse
> a experimentar a ver si adivinaba, grave error de mas de 6 horas!
> la solución era como la daba rafa =
> pcolor1 = &color1;
> y listo.
> Mil gracias parceros!
> un abrazo
>
>
>
> El 9 de octubre de 2013 20:47, Rafael Vega <email.rafa at gmail.com>escribió:
>
> Y no es el compilador el que dice eso, es el sist. Operativo. Por eso es
>> que a veces los IDEs son pelles, no sabes de donde viene que o que....
>>
>>
>>  2013/10/9 Rafael Vega <email.rafa at gmail.com>
>>
>>> EXEC_BAD_ACCESS = "Oeoeoeoeoe!!! pa donde va!!! esa memoria no es
>>> suya!!!"
>>>
>>>
>>> 2013/10/9 Rafael Vega <email.rafa at gmail.com>
>>>
>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Rafael Vega
>>> email.rafa at gmail.com
>>>
>>
>>
>>
>> --
>> Rafael Vega
>> email.rafa at gmail.com
>>
>> _______________________________________________
>> unloquer mailing list
>> unloquer at lists.aktivix.org
>> https://lists.aktivix.org/mailman/listinfo/unloquer
>>
>>
>
>
> --
> Johnny Sepúlveda
> ---------------------------------------------------------------------------
>
> 301 592 6880
> Sitio Web : http://johnnyalexandersepul.wix.com/kaziuz
>
> _______________________________________________
> 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/7f00a585/attachment.html>


Más información sobre la lista de distribución unloquer