tests_passed
Exercice validé
Tous les tests passent, visibles comme cachés. L’exercice est validé et votre progression sauvegardée.
✓ 8/8 tests réussis
Des exercices en C qui vous font comprendre ce qui se passe vraiment : la mémoire, les pointeurs, la compilation. Vous ne recopiez pas, vous comprenez pourquoi ça marche.
// 01 — en pratique
Chaque exercice part d’un énoncé clair. Vous écrivez votre solution, elle est compilée et testée, et quand ça ne passe pas, vous savez exactement pourquoi.
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}soumission reçuehello.c
en file d’attentejob #4812
compilationgcc -std=c11 -Wall
tests visibles3/3
tests cachés5/5
tests_passed+50 XP
// 02 — verdicts
Chaque soumission reçoit exactement un statut, avec ce qu’il faut pour comprendre et corriger.
tests_passed
Tous les tests passent, visibles comme cachés. L’exercice est validé et votre progression sauvegardée.
✓ 8/8 tests réussis
tests_partial
Certains tests passent, d’autres non. Les tests visibles vous montrent où chercher.
5/8 · test 6 : attendu 42, obtenu 41
compilation_error
gcc refuse votre code. Le message d’erreur complet s’affiche, ligne et colonne comprises.
hello.c:5:5: error: expected ';' before 'return'
runtime_error
Le programme compile mais s’arrête brutalement : segfault, division par zéro, signal anormal.
SIGSEGV · Segmentation fault
timeout
Le programme dépasse le temps autorisé. Une boucle qui ne s’arrête jamais, peut-être ?
killed · temps limite dépassé
constraint_violation
Le résultat est juste, mais l’exercice imposait une contrainte : pas de boucle for, pas de variable globale…
interdit : for (ligne 7)
// 03 — parcours
// 04 — progression
Chaque exercice validé rapporte de l’expérience. Montez en rang, débloquez des titres et des succès, et retrouvez tout sur votre profil.
Votre profil
rang : Initié · Rookie
prochain rang : Codeur
Valider votre tout premier exercice.
débloquéRéussir un exercice sans le moindre avertissement de gcc.
débloquéCorriger un runtime_error et repasser au vert.
débloquéRéussir un exercice dès la première soumission.
débloquéRéussir un examen de fin de module.
verrouilléRéussir un exercice qui alloue de la mémoire en libérant chaque malloc.
verrouillé// 05 — sécurité
Chaque soumission obtient son propre conteneur, créé pour elle et détruit juste après. Votre code ne touche jamais le serveur principal.
# une soumission = un conteneur docker run --rm \ --network none \ --memory 64m \ --cpus 0.5 \ --ulimit nproc=50 \ --read-only --tmpfs /tmp \ --user nobody \ runner/gcc-alpine
exit 0conteneur détruit
Créez votre compte et attaquez le premier module. Aucun prérequis, juste l’envie de comprendre ce qui se passe sous le capot.