Avatar ·

O que é segmentation fault (erro de segmentação) em C++ e como corrigi-lo?

Olá a todos! Comecei a estudar C++ recentemente e constantemente me deparo com o erro "Segmentation fault" (ou "Segfault"). O programa simplesmente trava e eu não entendo por quê. Aqui está um exemplo do meu código: ```cpp #include using namespace std; int main() { int* ptr; *ptr = 10; // Aqui ocorre segmentation fault cout << *ptr << endl; return 0; } ``` Declarei o ponteiro `ptr`, mas não atribuí um endereço a ele. Quando tento escrever o valor 10 nesse ponteiro, o programa quebra. Por que isso acontece? Eu pensei que um ponteiro é apenas uma variável que armazena um endereço, e que eu poderia escrever um número nele. Outro exemplo que não funciona: ```cpp #include using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; for (int i = 0; i <= 5; i++) { // Erro: i <= 5, mas deveria ser i < 5 cout << arr[i] << " "; } cout << endl; return 0; } ``` Aqui o programa às vezes trava, às vezes imprime lixo. Ouvi dizer que