Le C, la mémoire et le terminal, expliqués à partir des erreurs que tout le monde rencontre.
Erreurs et crashs
Segmentation fault en C : causes et ligne exacte
Ton programme C s'arrête sur « Segmentation fault » sans dire où ? Les causes les plus fréquentes, et comment trouver la ligne exacte avec gdb ou Valgrind.
Erreurs et crashs
Erreurs et crashs
free(): double free detected in tcache 2 en C
double free detected in tcache 2, free(): invalid pointer, munmap_chunk(): invalid pointer : d'où viennent ces messages glibc et comment corriger le free fautif.
Erreurs et crashs
implicit declaration of function : causes et correction
Depuis GCC 14, appeler une fonction non déclarée est une erreur. Include oublié, prototype manquant, faute de frappe : la cause et le correctif de chaque cas.
Erreurs et crashs
printf n'affiche rien en C : tampon de stdout et fflush
Ton printf ne s'affiche pas avant un segfault, ou disparaît dans un pipe ? Le tampon de stdout montré en vrai, et trois façons de forcer l'affichage.
Erreurs et crashs
undefined reference to en C : l'erreur de l'édition de liens
Ton code compile mais ld échoue : main mal écrit, fichier .c oublié, -lm manquant, ordre des -l, multiple definition. Chaque cas reproduit avec GCC et nm.
Erreurs et crashs
Warnings GCC : les messages courants expliqués et corrigés
control reaches end of non-void function, unused variable, makes pointer from integer, format '%d' expects... Les warnings GCC courants, leur cause, leur correction.
Mémoire et pointeurs
Mémoire et pointeurs
Liste chaînée en C : insérer, supprimer, libérer sans fuite
Une liste chaînée en C complète et sans fuite : struct node, insertion en tête et en queue, suppression d'un élément, libération, le tout vérifié par Valgrind.
Mémoire et pointeurs
malloc, calloc, realloc, free : différences en C
malloc, calloc, realloc, free : à quoi sert chacun, la différence entre malloc et calloc, et les pièges du redimensionnement et de la libération en C.
Mémoire et pointeurs
Pile et tas en C : différence, durée de vie, taille
Pile et tas en C : la différence de durée de vie, de taille et de vitesse, où vivent globales et littéraux, et pourquoi renvoyer une adresse de pile est un bug.
Mémoire et pointeurs
Pointeur en C : explication avec des schémas mémoire
Les pointeurs en C expliqués avec de vrais schémas mémoire : adresse, & et *, swap, tableaux, pointeur NULL, pointeur de pointeur et pointeur sur fonction.
Mémoire et pointeurs
Tableau ou pointeur en C : sizeof, char[] et char *
Un tableau n'est pas un pointeur. sizeof, décroissance, a[i] et *(a + i), char[] contre char *, tableaux 2D et « assignment to expression with array type ».
Le langage C
Le langage C
Chaînes de caractères en C : '\0', strcpy, strncpy, strcmp
Une chaîne C est un tableau de char terminé par '\0'. Ce que ça change pour strlen, strcpy, strncpy, strcmp, strdup et fgets, avec les avertissements de GCC 15.
Le langage C
Comportement indéfini en C : ça marche chez moi, pas ailleurs
Le comportement indéfini (undefined behavior) en C, avec des exemples réels qui changent entre -O0 et -O2, et comment le détecter avec -fsanitize=undefined.
Le langage C
GCC 15 en C23 par défaut : ce qui casse et comment corriger
GCC 15 compile en C23 par défaut : typedef int bool, déclarations f() et pointeurs de fonction sans paramètres ne passent plus. Chaque erreur et sa correction.
Le langage C
Nouveautés de C23 : nullptr, constexpr, #embed par l'exemple
nullptr, constexpr, typeof, auto, #embed, ckd_add, <stdbit.h>, %b : chaque nouveauté de C23 avec un exemple compilé par GCC 15 et la version qui la gère.
Outils et terminal
Outils et terminal
fork en C : wait, waitpid, exec, pipe et dup2
fork duplique ton processus, waitpid lit son code de sortie, exec le remplace, pipe et dup2 les relient. Tout est exécuté en vrai, zombie compris.
Outils et terminal
Lire un rapport Valgrind : Invalid read, definitely lost
Invalid read of size, uninitialised value, definitely lost, still reachable : chaque message de Valgrind expliqué sur un programme fautif, et comment le corriger.
Outils et terminal
Makefile en C : écrire son Makefile ligne par ligne
Un Makefile pour un projet C à trois fichiers, construit pas à pas : règles, CC et CFLAGS, $@ $< $^, .PHONY, clean, -MMD et l'erreur « missing separator ».
Outils et terminal
Valgrind sur Mac M1 et Windows : que faire en 2026
Valgrind ne tourne pas officiellement sur un Mac Apple Silicon ni sous Windows. Docker, WSL2, leaks, AddressSanitizer : ce que chacun détecte et ce qui lui échappe.
Apprendre à coder
Apprendre à coder
Apprendre le langage C en 2026 : par où commencer
Par où commencer le C en 2026 : quoi installer, dans quel ordre prendre les notions, comment pratiquer chaque jour et quelles ressources sérieuses lire.
Apprendre à coder
Correction automatique d'exercices de programmation
Comment marche un autograder, comment écrire des tests qui attrapent les vraies erreurs, les pièges à éviter, et comment créer tes exercices C ou Python corrigés.
Apprendre à coder
Apprendre à coder avec l'IA : ce que disent les études
Faut-il encore apprendre à coder quand l'IA écrit le code ? Un essai randomisé, l'étude METR et l'enquête Stack Overflow 2026 répondent avec des chiffres.





















