Avatar ·

¿Qué es segmentation fault (error de segmentación) en C++ y cómo solucionarlo?

¡Hola a todos! Acabo de empezar a aprender C++ y constantemente me encuentro con el error "Segmentation fault" (o "Segfault"). El programa simplemente se cae y no entiendo por qué. Aquí hay un ejemplo de mi código: ```cpp #include using namespace std; int main() { int* ptr; *ptr = 10; // Aquí ocurre segmentation fault cout << *ptr << endl; return 0; } ``` Declaré el pointer `ptr`, pero no le asigné una dirección. Cuando intento escribir el valor 10 en ese pointer, el programa se crashea. ¿Por qué sucede esto? Pensé que un pointer es solo una variable que almacena una dirección, y que puedo escribir un número en él. Otro ejemplo que no me funciona: ```cpp #include using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; for (int i = 0; i <= 5; i++) { // Error: i <= 5, pero debería ser i < 5 cout << arr[i] << " "; } cout << endl; return 0; } ``` Aquí el programa a veces se cae, y a veces imprime basura. He oído que