In programmazione, un puntatore pendente o dangling pointer è un puntatore che si riferisce ad un'area di memoria non più valida, perché già liberata o perché il puntatore viene utilizzato all'esterno del contesto di esistenza della variabile cui si riferisce.
Poiché il sistema operativo può riassegnare e riutilizzare quella data locazione di memoria, l'utilizzo di un puntatore pendente porta effetti impredicibili, che vanno dall'errore di segmentazione (sistemi UNIX) o errore di protezione generale (sistemi Windows), con conseguente terminazione dell'applicazione che ha causato l'errore, alla corruzione di dati in memoria.[1]