This commit is contained in:
2026-10-07 03:45:29 +02:00
parent 208a3e9738
commit 4351a40bd2
9 changed files with 1171 additions and 18 deletions
+13
View File
@@ -4,6 +4,11 @@
- **Fase 2**: buffer dinámico. La Fase 1 está cerrada en Fedora y en Windows
(2026-10-05).
- 2026-10-06 (Fedora): antes del 2.3b, repaso de punteros. Le costaba qué
viaja a una función, `*` frente a `->`, la pila frente al montón y restar en
hex. Se creó `docs/02-pointers-visual.html` (interactivo). Pendiente de que
conteste: A) por qué `&buffer_a - &buffer` da 4; B) cuántos bytes copia su
`append` actual con `data_b`.
- Paso actual: 2.3b. `hello.c` ya usa bien `goto cleanup` (punteros a `NULL`
uno por línea, `result`, un solo `return`), sin avisos con gcc ni clang, y
Valgrind limpio. Falta `escpos_buffer_append`: el parámetro con la cantidad,
@@ -109,6 +114,14 @@
que las tres valían `NULL` (solo la última). Lo detectó clang con
`-Wsometimes-uninitialized`. Ahora declara una variable por línea.
- Variables locales sin inicializar: creía que valían `NULL` como en Go.
- `sizeof`: el 2026-10-06 dijo que `sizeof buffer` (un puntero) da 1 byte; da
8 en 64 bits. Y lo veía como algo que "va a la casa" mientras se ejecuta,
cuando se calcula al compilar a partir del tipo.
- Hexadecimal: no sabe restar direcciones (`0xd210 - 0xd1f0`). Se le enseñó
a hacerlo con `p` en gdb y con las potencias de 16. Pide ayuda con
"ni idea": darle herramientas para medir, no la cuenta hecha.
- Se salta la predicción: el 2026-10-06 miró gdb sin predecir tres veces
seguidas. Insistir en que la escriba antes de ejecutar.
- Impresoras físicas: sin registrar marca y modelo.
- Confunde puntero colgante ("se pierde") con fuga. Tampoco tenía claro por qué
el slice viejo es seguro en Go tras `append` (el GC no libera el array viejo,