Qu'est-ce qu'une erreur de segmentation (segmentation fault) en C++ et comment la corriger ?
Bonjour à tous ! Je viens de commencer à apprendre le C++ et je rencontre constamment l'erreur "Segmentation fault" (ou "Segfault"). Le programme plante simplement, et je ne comprends pas pourquoi. Voici un exemple de mon code :
```cpp
#include
using namespace std;
int main() {
int* ptr;
*ptr = 10; // Ici se produit une segmentation fault
cout << *ptr << endl;
return 0;
}
```
J'ai déclaré un pointeur `ptr`, mais je ne lui ai pas assigné d'adresse. Quand j'essaie d'écrire la valeur 10 à ce pointeur, le programme plante. Pourquoi cela se produit-il ? Je pensais qu'un pointeur était simplement une variable qui stocke une adresse, et que je pouvais y écrire un nombre.
Un autre exemple qui ne fonctionne pas chez moi :
```cpp
#include
using namespace std;
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i