Puntero a puntero en C: ejercicio resuelto con cambio de referencia

Puntero a puntero en C: ejercicio resuelto

Si buscas puntero a puntero en C ejercicio resuelto, este ejemplo explica como cambiar un puntero original dentro de una función.

Enunciado

Crea una función que reciba int **p y redirija *p hacia otro entero.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <stdio.h>

void redirigir(int **p, int *nuevo_objetivo) {
    *p = nuevo_objetivo;
}

int main(void) {
    int a = 10;
    int b = 99;
    int *p = &a;

    printf("Antes: %d\n", *p);
    redirigir(&p, &b);
    printf("Despues: %d\n", *p);

    return 0;
}

Salida esperada

1
2
Antes: 10
Despues: 99

Aplicación práctica

  • funciones que reservan memoria y devuelven puntero,
  • estructuras enlazadas (insertar/borrar cabeza),
  • APIs que necesitan reescribir referencias.

Errores frecuentes

  • Pasar p en lugar de &p.
  • No diferenciar p, *p y **p.
  • Desreferenciar punteros no inicializados.

Siguiente ejercicio recomendado

Práctica guiada y libro completo

Si quieres una ruta completa con progresión real de dificultad:

FAQ

¿Este ejercicio sirve para entrevistas y exámenes de C?

Sí. Trabaja patrones que aparecen mucho en prácticas, entrevistas técnicas y evaluaciones de programación en C.

¿Dónde seguir con más ejercicios resueltos de C?

En Programación en C en 100 ejercicios resueltos y en Ejercicios C. Kindle Unlimited: Ver en Amazon.

¿Cómo practicar este tipo de ejercicio para mejorar más rápido?

Empieza con entradas pequeñas, prueba casos límite (vacío, un elemento y capacidad máxima) y luego reescribe la solución sin copiarla.