Professional Documents
Culture Documents
EJERCICIOS
ESTRUCTURAS DE DATOS
RECUERDE * Y &
Si tengo un puntero y
ERRORES
pta = *a;
ptb = &pta;
pta = 8;
ptb = ptb + 3;
ptb = &NULL;
Que b almacene 8
b = 8;
*ptb = b;
ptb = a + 10;
printf(%d, pta +
ptb);
EL DESTINO DE UN
PUNTERO
RESULTADOS Y ERRORES
int *ptc, b;
b = malloc ( sizeof ( int ) );
*b = 8;
ptc = malloc(sizeof(int));
ptc = b+5;
free(*ptc);
b = *ptc + 10;
ARREGLOS Y PUNTEROS:
RESULTADOS
int AE[4] = {4,1,5,2}, *p;
int i;
p = AE;
for(i = 0; i < 4; i++){
p[i] = p[i] + 3;
}
p = malloc(sizeof(int)*9);
for(i = 0; i < 9; i++){
p[i] = 5;
}
ARITMETICA DE PUNTEROS:
CAMBIAR PROGRAMA
ARITMETICA DE PUNTEROS:
RESUELVA
ARITMETICA DE PUNTEROS:
RESULTADOS
int B[] = {3,4,1,2,7,12,-4};
float f = 4.234, *ptf;
*(B+3) = *B + 15;
ptf = &f;
*B = (int)(*ptf);
f = *ptf + 20;
*(B + 5) = (int)(*ptf);
ARREGLOS DE PUNTEROS
int *A[4];
A es un conjunto de punteros, cada uno puede apuntar a donde
desee,
A otras variables o,
Comprar uno o varios cajoncitos propios
ARREGLOS DINAMICOS DE
PUNTEROS
int **A;
EJEMPLO
int **A;
A = malloc(sizeof(int *) * 10);
for(i = 0; i <10; i++){
A[i] = malloc(sizeof(int));
*A[i] = 0;
}
int **A;
A = malloc(sizeof(int *) * 10);
for(i = 0; i <10; i++){
A[i] = malloc(sizeof(int)*5);
for(j = 0; j<5; j++){
A[i][j] = 6;
}
}
EJERCICIOS DE REPASO
EJERCICIOS DE REPASO
EJERCICIOS DE REPASO
VOID *
Void significa el vaco, la nada
En lenguaje C puede tener dos usos
EJEMPLOS DE VOID *
char car1=B, car2;
void *ptg;
ptg = &car1;
car2 = *((char *)ptg) + 3;
PARA PENSAR
Se podra declarar un arreglo de void *?
Que utilidad tendra?