Avatar ·

¿Qué es segmentation fault (error de segmentación) en C++ y por qué ocurre?

¡Hola a todos! Soy nuevo en C++ y me encontré con un error que no entiendo. Mi programa se compila sin errores, pero al ejecutarse falla con el mensaje "Segmentation fault (core dumped)". Ni siquiera sé qué significa. Aquí hay un código simplificado que me causa este problema: ```cpp #include using namespace std; int main() { int* ptr; *ptr = 42; // Aquí ocurre el crash cout << *ptr << endl; return 0; } ``` Simplemente declaro un puntero `ptr` e intento escribir un valor en él. ¿Por qué falla el programa? He oído que tiene algo que ver con la memoria, pero no entiendo los detalles. También tengo otro ejemplo con un array: ```cpp int arr[5] = {1, 2, 3, 4, 5}; for (int i = 0; i <= 5; i++) { cout << arr[i] << endl; // En la última iteración hay error } ``` Aquí salgo de los límites del array, pero ¿por qué esto causa un segmentation fault y no solo muestra basura? Expliquen, por favor, qué es segmentation fault, por qué ocurre y cómo evitarlo.