Avatar ·

Um bool não inicializado pode causar uma falha no programa em C++?

Olá! Recentemente comecei a estudar C++ e me deparei com uma situação estranha. Tenho este código: ```cpp #include int main() { bool flag; // não inicializado if (flag) { std::cout << "True" << std::endl; } else { std::cout << "False" << std::endl; } return 0; } ``` No meu compilador (g++ no Ubuntu) ele imprime consistentemente "False", e o programa funciona normalmente. Mas ouvi dizer que usar variáveis não inicializadas é undefined behavior. Isso significa que o programa pode realmente falhar? Afinal, bool é apenas um byte que pode ser 0 ou 1, e mesmo que contenha lixo, a verificação de true/false deveria funcionar, certo? Estou particularmente interessado no caso de compilação com LLVM/Clang. Li que lá podem haver otimizações que fazem algo inesperado com bool. O compilador pode gerar código que cause segmentation fault ou loop infinito? Ou isso é tudo teó