Cómo resolver errores de tiempo de ejecución en la programación en lenguaje C
1. Hay un problema con las dos variables de control del bucle for en la función divertida. Deben cambiarse a la siguiente forma:
for. (I = 0; i lt2; i )
for(j = 0; j ltm; j )
{
si (a[I][ j]》;max )
max = a[I][j];
}
2. También hay un problema durante la salida. El valor de retorno de la función divertida es int, por lo que debería ser:
printf ("\nEl valor de la función es: d\n", fun (arr)); >Datos extendidos:
Análisis de errores en tiempo de ejecución
1. Desbordamiento del búfer
Desbordamiento del búfer, el desbordamiento del búfer generalmente significa que la matriz en su programa es muy pequeña. conduce a un acceso fuera de límites, como definir int a[100].
En este momento, si hace referencia a [1000], es probable que se produzca un error de tiempo de ejecución. "Buffer" generalmente se refiere a una matriz definida en un programa. Este espacio de memoria continua se utiliza para almacenar algunos datos que se procesarán.
Vale la pena mencionar que incluso los programadores maduros pueden ignorar accidentalmente las vulnerabilidades de desbordamiento del búfer, provocando enormes pérdidas. Entonces, ahora, al escribir código, debemos pensar detenidamente y considerar el rango de cada valor para evitar que se salga de los límites. Una de las razones principales por las que existen vulnerabilidades de desbordamiento del búfer es que el lenguaje C no verifica los límites de los subíndices de la matriz.
2. Desbordamiento de pila Desbordamiento de pila.
La pila se suele utilizar para mantener llamadas a funciones en el sistema operativo. En C, cuando se llama a una función, se basa en la memoria de la estructura de datos "pila".