This commit is contained in:
2026-10-05 21:45:53 +02:00
parent b15620838b
commit 8383a725e2
3 changed files with 27 additions and 8 deletions
+8
View File
@@ -387,6 +387,14 @@ cleanup: /* etiqueta: destino del goto */
}
```
**Variables locales sin inicializar = basura.** En Go toda variable nace con
su valor cero (`nil`, `0`, `""`). En C, una variable local que no inicializas
contiene lo que hubiera antes en esa posición de la pila. Si un `goto` salta
por encima de la línea `escpos_buffer *b = escpos_buffer_new();`, esa
asignación no se ejecuta y `b` vale cualquier cosa. Pasarla a `free` es
comportamiento indefinido. (Las variables **globales** y `static` sí empiezan a
cero.)
Por qué funciona:
- Todos los punteros empiezan en `NULL`, y la función de liberar acepta `NULL`