Beruflich Dokumente
Kultur Dokumente
PROGRAMACIN EN C
Apuntadores
Es una variable que contiene la direccin de
memoria de otra variable.
CORRECTO
Int *x;
Int *x=NULL;
Int y;
x = &y;
*x = 100;
*x = 100;
PROCESO
4
int dato= 2;
variables
int *apunt;
dato
Direcc
memoria
100
apunt
2000
apunt= &dato;
variables
Memoria
fsica
Memoria
fsica
Direcc
memoria
dato
100
apunt
100
2000
PROCESO
5
*apunt= 5;
variables
Memoria
fsica
Direcc
memoria
dato
100
apunt
100
2000
PROCESO 2
int x=1;
int y=2;
int *apuntador;
apuntador = &x;
y = *apuntador;
x = apuntador;
*apuntador = 3;
Hecho por Huicho :)
Aritmtica de apuntadores
Si p es un apuntador
a un tipo de dato al
*ap
sumar 1 obtendr la
*(ap+1)
siguiente direccin
*(ap+2)
de memoria de la
*(ap+3)
variable
*(ap+4)
VARIABLES
Memoria
fsica
arreglo[0]
100
arreglo[1]
101
arreglo[2]
102
arreglo[3]
arreglo[4]
103
104
Direcc
memoria
*(p + 1)
*(p + i)
*(p ++)
*(p += i)
Memoria dinmica
Se usa cuando se sabe exactamente cunta memoria se usar durante la
ejecucin y as no desperdiciarla pidiendo espacio innecesario en un
arreglo esttico.
Se emplea con apuntadores para reservar el espacio en tiempo de la
ejecucin.
Pueden pedirse arreglos unidimensionales o matrices.
Malloc
Pedirla a
<stdlib.h>
10
Calloc
Pedirla a
<stdlib.h>
sizeof(double);
Se puede convertir el puntero void al tipo de dato usado a
travs de un casting:
int *apuntador;
apuntador= (int *)calloc(10,sizeof(int))
Si no hay memoria suficiente el apuntador devuelve NULL
Hecho por Huicho :)
11
Calloc
12
Aritmtica de apuntadores
Lectura
Recorrer arreglo con ciclo for conociendo el inicio, condicin e
incremento/decremento.
scanf("%d", (apuntador+i));
}
Arreglo dinmico
int *apuntador;
apuntador= (int *)malloc(10*sizeof(int))
Hecho por Huicho :)
Arreglo esttico
int arreglo[5];
int *apuntador=NULL;
apuntador= arreglo;
13
Aritmtica de apuntadores
Impresin
Recorrer arreglo con ciclo for conociendo el inicio, condicin e
incremento/decremento.
Arreglo dinmico
int *apuntador;
apuntador= (int *)malloc(10*sizeof(int))
Hecho por Huicho :)
Arreglo esttico
int arreglo[5];
int *apuntador=NULL;
apuntador= arreglo;
14
char nombre[10];
VARIABLES
Memoria
fsica
nombre[0]
apuntador[0]
nombre[1]
apuntador[1]
nombre[2]
apuntador[2]
nombre[3]
nombre[4]
\0
nombre[5]
Basura
nombre[6]
Basura
nombre[7]
Basura
apuntador[3]
Sumar 1 a longi para apuntador[4]
guardar tambin el
carcter de
terminacin
nombre[8]
Basura
nombre[9]
basura
VARIABLES
longi= strlen(nombre)
\0
15
Matrices
Apuntador de apuntadores
Se declara el apuntador de apuntadores y variables
int **matriz;