1:dev/42-school.md
" ==========================================
" rcepre / portfolio
" dernière version : 2026
" ==========================================
audio/
·· README.md
·· reterraform.antres
·· space_dust.antres
·· the_junkyard_of_the_jettisoned.antres
blog/
·· apte.md
dev/
·· lab/
·· projects/
·· 42-school.md
·· experience.md
·· skills.md
hello-world.html
0:brut1:rendu*
42 School — Projets C / C++

Du bas niveau, du vrai. Mémoire, graphes, VMs, sécu, appels système — à la dure.

42

C'est vieux. Le code est sûrement atroce. Mais c'est là que j'ai compris comment un ordi marche pour de vrai.

─────────────────────────────────────────
malloc Gitlab

Réimplémentation de malloc, realloc et free en C. Ça passe mes tests, ça tourne sur pas mal de programmes — mais les gros logiciels comme vim finissent par segfault. Honnêtement c'est pas fou, mais le construire m'a énormément appris sur la gestion mémoire bas niveau, et par extension sur tous les langages qui reposent sur le C.

Corewar Gitlab

avec rgermain & loiberti

Une arène virtuelle où des champions (écrits en assembleur) se battent en écrasant la mémoire des autres. Projet de groupe — j'ai fait l'assembleur (messages d'erreur à la clang) et le visualiseur SDL. Ma première fois en graphisme C, et j'y suis allé à fond : le rendu est propre, y'a un mode plein écran années 80, et c'est même sonore. Le code doit être terrifiant, mais les perfs étaient au rendez-vous et visuellement c'était dingue.

Snow Crash Gitlab

Reverse engineering et sécurité. Exploitation de binaires, shellcode, analyse ELF, debugging, assembleur, scripting Perl/Python/shell. Du CTF en guise d'intro à la sécu offensive.

Abstract VM Gitlab

Mon premier projet C++. Une VM simple qui interprète des programmes en langage assembleur basique — pile, opérandes typés (int8 à double), arithmétique, assertions, et une commande dump.

ft_ls Gitlab

Réimplémentation de ls. Premiers pas en prog système — parcours de filesystem, appels stat, permissions Unix, tri, formatage. Basique mais fondateur.

Lem-in Gitlab

Parcours de graphes. Faire passer N fourmis d'un point A à un point B dans un graphe arbitraire, en un minimum de tours — deux fourmis ne peuvent pas être dans la même salle en même temps. Le vrai défi : trouver la meilleure combinaison de chemins nœud-disjoints — pas juste le plus court, mais l'ensemble qui minimise le temps total de traversée.

On précalcule une matrice de compatibilité : pour chaque paire de chemins, on regarde s'ils partagent des salles, et on encode ça en un bit dans un __uint128_t. Ensuite une recherche récursive explore les combinaisons valides en ANDant des bitmasks — une seule opération bitwise élague des branches entières. Chaque combinaison survivante est scorée en simulant la répartition des fourmis, et la meilleure gagne.

Celui-là a failli nous achever. Je comprends plus une seule ligne du code qu'on a pondu — des matrices de bitmasks 128 bits et du bitwise dans tous les sens. Truc absolument crâne-fondant.

─────────────────────────────────────────

Et plein d'autres — ft_printf, libft (réimplémentation de la stdlib), une réimplémentation partielle de la STL C++ (vector, array...), des projets réseau, et j'en passe. Deux ans de C et C++ à la dure :) .

╭─ text
# **************************************************************************** #
#                                                                              #
#                                                         :::      ::::::::    #
#    42-school.md                                       :+:      :+:    :+:    #
#                                                     +:+ +:+         +:+      #
#    By: rcepre  rcepre@student.42.fr               +#+  +:+       +#+         #
#                                                 +#+#+#+#+#+   +#+            #
#    Created: 2019/01/01 00:00:42 by rcepre            #+#    #+#              #
#    Updated: 2026/03/23 13:37:42 by rcepre           ###   ########.fr        #
#                                                                              #
# **************************************************************************** #
NORMALdev/42-school.md[+]
^E explorateur^R rendu^; thème
markdown88L1:1
github.com/renaudcepre
ENcatppuccin