malloc, free, append

This commit is contained in:
2026-10-02 11:36:59 +02:00
parent b8141311aa
commit 9d517f3607
13 changed files with 960 additions and 13 deletions
+13 -1
View File
@@ -8,7 +8,9 @@ Ordenados por tema, en el orden en que se ven en el proyecto.
para compilar, cabeceras e `#include`, encapsulación y tipos opacos, *include guards*,
flags, qué ve quien recibe los binarios, `nm` y errores del enlazador.
2. [Punteros y cadenas](02-pointers-and-strings.md): cadenas terminadas en
`'\0'`, `const char *`, los dos significados de `*` y el formato de `printf`.
`'\0'`, `const char *`, los dos significados de `*`, dónde va el `*`,
nombres de parámetros, paso por valor frente a puntero y el formato de
`printf`.
3. [La memoria de un proceso](03-process-memory.md): memoria virtual, fallos
de página, modo usuario y modo núcleo, llamadas al sistema, cómo se lee la
memoria de otro proceso, y por qué el peligro real está en la tuya.
@@ -21,6 +23,16 @@ Ordenados por tema, en el orden en que se ven en el proyecto.
6. [Make](06-make.md): reglas, grafo de dependencias por fechas, variables
automáticas, reglas patrón, dependencias de cabeceras con `-MMD -MP` y
detección de Windows/Linux.
7. [Memoria dinámica](07-dynamic-memory.md): pila y montón, *escape
analysis* de Go, `malloc`/`free`/`calloc`, `sizeof *p`, `realloc` y
estrategia de crecimiento, fugas, propiedad de
los punteros y Valgrind.
8. [Structs](08-structs.md): definir frente a declarar, tipos incompletos y
tipo opaco, struct público frente a opaco, `typedef`, `uint8_t` y
`size_t`, qué tipo usar en cada caso, `.` frente a `->` e inicializadores designados.
9. [Depurar](09-debugging.md): qué es un *segfault*, código de salida 139,
`NULL` y la página 0, `free(): invalid pointer` (código 134), método para
depurar con Valgrind y los comandos mínimos de gdb.
[Chuleta de comandos](cheatsheet.md): todos los comandos usados, agrupados por
tarea.