Pregunta basica sobre punteros

ChemicalX

Buenas, estoy con c++, objetos y tal...
Despues de que el CodeGuard (lo q tiene c++ builder para detectar si haces buen uso de los punteros) me amargue la existencia de mil maneras distintas, recurro a vosotros para que aclareis algo basico de los punteros a ver si estoy equivocado o que.

Tengo:

int* a
int* b

*a=8 (dentro de la direccion a la q apunta "a" meto un 8)

Ahora quiero que "b" apunte a "a", osea a la misma direccion, de modo q si modifico el contenido de b se modifique el contenido de a. Para ello que tengo que poner?
b = a ?
b=a?

Si es una de estas dos ultimas podeis explicarme q es lo q hace la otra entonces?

Gracias de antemano

IS4kO

'Modifico conetnido de dirección B:

*b = nuevo valor

'Asigno:

*a = *b

ChemicalX

y entonces a=b que significa?

que copio el contenido de la direccion a la q apunta b en la direccion a la q apunta a?

#2 poniendo lo de a=b me da mas fallos aun :S:S
q caos
me dice "access to invalid memory". yo creo q intenta copiar el contenido de la direccion a la q apunta "b" en la direccion a la q apunta "a", y como "a" no esta inicializado pues dice q naranjas de la china

TeKaNeO

No se si es lo que pides. Aqui te lo dejo:

http://rafb.net/paste/results/mKwLUR10.html

Saludos^^

maRc

b = a, b apunta a donde apunta a
b=a, el valor apuntado por b es el mismo que el apuntado por a
b=a, mal, el valor apuntado por b es la dirección donde apunta a (asignas a un entero una dirección de memoria)
b=
a, mal, cambias la dirección donde apunta b a un entero (es decir, asignas a una dirección de memoria un entero)

Con númeritos. Imaginemos: b apunta a la dirección 0x1000. a apunta a la dirección 0x2000, donde hay un entero que vale 3.

b = a, b pasa a valer 0x2000 (apunta a 0x2000)
*b = *a, el valor del entero que está en la dirección 0x1000, pasa a valer 3
b=a, el valor del entero que está en la dirección 0x1000, pasa a valer 0x2000
b=
a, la variable b "apunta" a la dirección 3

gF

Joder la pregunta era sencilla y lo vais a liar bien...

La respuesta a lo que quieres hacer es: b = a

ChemicalX

muchas gracias a todos , creo que me queda mas o menos claro.
Por desgracia es asi como lo tengo en la practica que tengo que entregar el lunes, asi que si el fallo no esta ahi, a saber donde coño esta XD

Por queeeee

JuAn4k4

int* a

int* b

int *a
int *b

¿ Son iguales ?

maRc

#8, si.

Usuarios habituales

  • maRc
  • JuAn4k4
  • ChemicalX
  • gF
  • TeKaNeO
  • IS4kO