Muchos lenguajes, incluyendo lenguajes de programación funcionales y los últimos lenguajes imperativos como Java, reemplazan los punteros con un tipo más opaco de referencia, típicamente referido simplemente como "referencia", que solo puede ser usado para referirse a los objetos y no manipula a los números, previniendo este tipo de error.