/**************************************************************************** PROGRAMA: punt2.c AUTOR: Kiko FECHA: 12.07.94 FINALIDAD: Mostrar el paso de par metros de punteros a funciones. COMENTARIOS: El alumno debe comprender el comportamiento del programa. En caso de tener problemas, estudie lo que ocurre cuando a una funci¢n se pasa un par metro por valor. A continuaci¢n consid‚rese lo que ocurre cuando ese par metro es un puntero. MODO DE UTILIZACION: El fichero ejecutable es autoexplicativo ****************************************************************************/ #include #include #include void f1(int *p); void f2(int **p); /*==========================================================================*/ void f1(int *p) { p = (int *)malloc(sizeof(int)); *p = 1; printf("Dentro de f1: &p: %p *p: %6d\n", p, *p); } /*==========================================================================*/ void f2(int **p) { /* Aqu¡ p es un puntero a puntero, y *p es un puntero */ *p = (int *)malloc(sizeof(int)); **p = 2; printf("Dentro de f2: &p: %p *p: %6d\n", *p, *(*p)); } /*==========================================================================*/ int main(void) { int *ip; clrscr(); printf("Principio: &ip: %p *ip: %6d\n", ip, *ip); f1(ip); printf("Despu‚s de llamar a f1: &ip: %p *ip: %6d\n", ip, *ip); f2(&ip); printf("Despu‚s de llamar a f2: &ip: %p *ip: %6d\n", ip, *ip); return 0; }