Teme Avansate
Debugging
Debugging este procesul de identificare și corectare a erorilor. Există mai multe tehnici.
Print debugging
// Adaugă afișări temporare pentru a urmări valorile
for (int i = 0; i < n; i++) {
cerr << "i=" << i << " v[i]=" << v[i] << endl; // cerr nu e buffered
// ... logica ...
}Assertions
#include <cassert>
assert(n > 0); // oprește programul dacă condiția e falsă
assert(ptr != nullptr);Compilare cu sanitizatori
Terminal
g++ -g -fsanitize=address,undefined prog.cpp -o prog
./prog
# Detectează: buffer overflow, use-after-free, UB etc.La olimpiadă: compilează cu
-Wall -Wextra pentru avertismente maxime. Rezolvă toate warning-urile — adesea ascund bug-uri reale.