domingo, 11 de abril de 2010

Punteros

Definición

Los punteros (o apuntadores) son variables que pueden guardar direcciones de memoria.

Dado esto, el lenguaje C ofrece varias alternativas para que un puntero adquiera un valor.

Al definir un puntero, éste ya tiene un valor. Si es una variable global, el valor es 0, si es una variable local (también llamadas automaticas), el valor no está definido y son la fuente de muchos problemas para quienes comienzan a programar en C o C++.


{
int *p; // que valor tiene p?
...
}


Maneras de asignar un puntero

- Asignar la dirección de memoria de otro objeto (usar el operador unario &)

{
int a;
int *p = &a;
...
}


- Asignar alguna dirección de memoria conocida (muy poco portable, peligroso, no recomendable)

{
int *p = 0x321;
...
}

- Solicitar memoria

{
int *p = (int *) malloc( sizeof(int) ); // a la C
int *q = new int; // a la C++
...
}

- Copiar la direccion de memoria que otro puntero guarda

{
int x;
int *p = &x; // direccion de x
int *q = p; // direccion de x
...
}

No hay comentarios:

Publicar un comentario