Las excepciones de tiempo de ejecución se producen mientras se ejecuta el programa. Aquí, el proceso de compilación será exitoso. Estos errores ocurren debido a fallas de segmentación y cuando un número se divide por un operador de división o un operador de división de módulo.
Tipos de errores de tiempo de ejecución:
- Un acceso de memoria inválido
- Dividiendo por cero.
- Fallos de segmentación
- Asignación de memoria grande/Asignación de memoria estática grande
- Cometer errores comunes.
1. Durante el tiempo de ejecución, un acceso de memoria no válido
Se produce un error de acceso a la memoria no válido durante el tiempo de ejecución cuando al índice de la array se le asigna un valor negativo.
Nota: La salida puede cambiar cada vez que ejecutamos este programa porque da un valor basura a cambio de la ubicación no válida.
C
// C program to demonstrate // an invalid memory access error #include <stdio.h> int a[5]; int main() { int s = a[-11]; printf("%d", s); return 0; }
32746
2. Dividir por cero
Cuando estamos tratando de dividir cualquier número por cero, obtenemos este tipo de error llamado errores de coma flotante.
C
// C program to demonstrate // an error occurred by dividng 0 #include <stdio.h> int main() { int a = 5; printf("%d", a / 0); return 0; }
Producción:
3. Fallos de segmentación
Consideremos una array de longitud 5, es decir, array [5], pero durante el tiempo de ejecución, si intentamos acceder a 10 elementos, es decir, array [10], obtenemos errores de falla de segmentación llamados errores de tiempo de ejecución. Dando solo una longitud de array de 5
C
// C program to demonstrate // an error of segmentation faults #include <stdio.h> int main() { int GFG[5]; GFG[10] = 10; return 0; }
Pero en la salida que intenta acceder a más de 5, es decir, si intentamos acceder a la array [10] durante el tiempo de ejecución, obtenemos un error
Producción:
4. Gran asignación de memoria/Gran asignación de memoria estática:
En general, todos los jueces en línea permiten hasta 10^8. Sin embargo, para estar seguro, use hasta 10 ^ 7 a menos que sea necesario. En el siguiente ejemplo, hemos mencionado más de 10 ^ 8, por lo que provocará un error debido a una gran asignación de memoria.
C
// C program to demonstrate // an error of large memory allocation #include <stdio.h> int main() { int GFG[10000000000]; printf("%d", GFG); return 0; }
Producción:
5. Cometer errores comunes:
El siguiente código da un error de tiempo de ejecución porque hemos declarado una variable como long int pero en scanf hemos usado %d en lugar de %ld. Por lo tanto, dará un error.
C
// C program to demonstrate // a common error #include <stdio.h> int main() { long int GFG; scanf("%d", &GFG); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por laxmigangarajula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA