nextupprevious
Next: 8.2. Punteros a una estructura Up:Índice Previous: 8. Punteros


8.1. Declaración de punteros

 La forma de declarar un puntero es la siguiente:

cualificador tipo *nombre, *nombre;

El tipo indica al tipo de datos a los que apuntará el puntero, pero como efecto de la declaración se reservará espacio en memoria para guardar un puntero, no para el tipo de datos al que apunta.
Existe un carácter especial que se usa como prefijo y aplicado a las variables indica la dirección de memoria que ocupa la variable, no el contenido (valor). Este símbolo es &. Además existe otro prefijo, *, que aplicado a una variable de tipo puntero indica el contenido de la dirección a la que apunta dicho puntero. A estos dos símbolos se les llama dirección e indirección respectivamente.
Hay 3 formas de inicializar un puntero:

a) Inicializarlo con el valor NULL (definido en un fichero header). De este modo estamos indicando que el puntero no apunta a ninguna memoria concreta.
b) Inicializarlo haciendo que tome como valor la dirección de una variable.
  int *p, a;
  p = &a;
A partir de estas sentencias, *p y a son alias.
c) Asignarle memoria dinámica a través de una función de asignación de memoria. Las funciones más habituales son calloc y malloc, definidas en el fichero alloc.h o bien en stdlib.h
void *malloc(size_t size)
void *calloc(size_t n_items, size)

Una inicialización de un puntero a un tipo T tendría la forma:

 p = (T*)malloc(sizeof(T));



nextupprevious
Next: 8.2. Punteros a una estructura Up:Índice Previous: 8. Punteros


Última modificación: 26/4/1999


Copyright © 1999, F. de Sande - Centro Superior de Informática, Universidad de La Laguna.
All rights reserved.