La pesadilla de los punteros
- martes, noviembre 16 2021 @ 11:18 CET
- Autor: ceyusa
- Lecturas 1,021

Supongamos que uno hace uso de un recurso, un objecto por ejemplo, y tiene una referencia a través de un puntero. Digamos
Object *p = get_object();
Pero en algún momento este objeto es liberado mientras retenemos el puntero p. Y entonces, si hacemos:
p->do_action();
Tenemos, en el mejor de los casos, una falla de segmento (segmentation fault). En el peor de los casos, el método es reemplazado, a través de un buffer overflow, por una función maliciosa.
El problema es generalizado y no es, de ninguna manera, excluviso de programadores novatos. Tanto es así que Google, en Chrome, que usa C++, esta proponiendo una clase llamada MagicPtr<T>, para manejar todos los punteros de los cuales la clase responsable no tiene control:
https://docs.google.com/document/d/1p...Nb_dbQ3ZBg