2/12/15

Punteros rotos

Para aquellos que aprendimos a programar en los años 90, C era el lenguaje de referencia. En C el código se guardaba en silos de memoria, de manera que cualquier programa podía invocarlo cuando lo considerara necesario. El programador, como un gran hacedor, era responsable de liberar el espacio si lo considerara necesario, como el granjero debe cuidar del barbecho de la parcela cuando no se debía sembrar.
Los que llevamos tiempo en las redes sociales hemos visto envejecer a nuestros interlocutores. Cambiar, envejecer y, en algún caso, morir. Cuando ocurre, se mezcla el dolor real de los allegados con el “telescópico” de plañideras que necesitan llorar. Excepto por el contacto físico con la muerte -aquí a diferencia de la terrible escena de La gran Belleza, siempre habrá cuatro que cargarán con un féretro virtual- el duelo se parece al de cualquier pueblo, quizá amplificado por la velocidad y facilidad con la que el bit recorre los kilómetros. Después no, dos palmos por encima del móvil, la tierra y el tiempo lo tapan todo, un par de metros son suficientes excepto para los pocos que nunca van a poder olvidar. En internet nuestro pasado queda congelado, a la vista.No cerrarlo es no finalizar el duelo porque basta pinchar para seguir viéndote ahí, cansado, borracho, irascible, enamorado, vivo.
Jack, El gran hacedor, alguien debiera cerrar las vidas virtuales, liberar esos punteros al vacío, advertir a quien los llama. Dice la wikipedia que “tratar de utilizar un puntero cuyo bloque de memoria ha sido liberado con free puede ser sumamente peligroso. El comportamiento del programa queda indefinido: puede terminar de forma inesperada, sobrescribir otros datos y provocar problemas de seguridad. Liberar un puntero que ya ha sido liberado también es fuente de errores
int *i;
i = malloc(sizeof(int));
free(i);
i = NULL;