En este artículo, discutiremos el motivo del error de tiempo de ejecución y su solución.
Error de tiempo de ejecución : un error de tiempo de ejecución en un programa es un error que ocurre mientras el programa se ejecuta después de haber sido compilado con éxito. A continuación se muestran algunos métodos para identificar el motivo del error de tiempo de ejecución:
Método 1: cuando el índice de la array se asigna con un índice negativo, se produce un acceso de memoria no válido durante el error de tiempo de ejecución. A continuación se muestra el programa C++ para ilustrar el acceso a la memoria no válido durante el tiempo de ejecución:
C++
// C++ program to illustrate invalid // memory access during run-time #include <iostream> using namespace std; // Global declaration int arr[5]; // Driver Code int main() { int answer = arr[-10]; cout << answer; return 0; }
1736487104
Método 2: A veces, la array o el vector se salen de sus límites, lo que genera un error de tiempo de ejecución. A continuación se muestra el programa de C++ que ilustra que la array se desborda:
C++
// C++ program to illustrate // array runs out of bound #include <iostream> using namespace std; // Driver Code int main() { long n; n = 100000000000; // 'n' is out of bound for // the array limit long a[n]; cout << a[1] << " "; return 0; }
Explicación:
- Este es un error de índice fuera de límite.
- Se puede resolver usando el tamaño de la array/vector dentro del límite.
Método 3: algunos errores tontos encontrados al codificar con prisa, a veces conducen a un error de tiempo de ejecución. A continuación se muestra el programa C++ que ilustra el error de tiempo de ejecución por variables no asignadas:
C++
// C++ program to illustrate runtime // error by un-assigned variables #include <iostream> using namespace std; // Driver Code int main() { long long N; // N is assigned garbage value long arr[N]; cin >> N; for (int i = 0; i < N; i++) { cin >> arr[i]; } for (int i = 0; i < N; i++) { cout << arr[i] << " "; } return 0; }
Explicación:
El programa anterior muestra «Acceso a memoria incorrecto (SIGBUS)» porque:
- Aquí, a la variable N se le asigna un valor de basura que genera un error de tiempo de ejecución.
- A veces, ya que depende del compilador cómo asignó el valor basura.
- Esto se puede resolver declarando arr[N] después de escanear el valor de la variable n y verificar si es el límite superior o inferior del índice de array / vector .
Publicación traducida automáticamente
Artículo escrito por harishsinghbohra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA