hello.c
This commit is contained in:
@@ -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`
|
||||
|
||||
Reference in New Issue
Block a user