¿Cómo resolver el problema de la matriz fuera de límites?
1. ¿Qué es el acceso a matrices fuera de límites? \x0d\Usamos el subíndice de la matriz para obtener el elemento en el índice especificado en la matriz. Esto se llama acceso a la matriz. \x0d\Si se define una matriz con n elementos, entonces el acceso a los n elementos (elementos con índices de 0 a \x0d\n-1) es legal. Si el acceso a otros elementos que no sean n es ilegal y se llama. "fuera de límites.\x0d\La matriz ocupa un espacio de memoria continuo. Luego, podemos acceder a diferentes ubicaciones en esta memoria especificando el subíndice de la matriz. Por lo tanto, cuando su subíndice es demasiado grande En este momento, la memoria a la que se accede ya no es la memoria de esta matriz. A lo que accederá será la memoria de otras variables. ¿Qué pasará si el acceso excede el límite? En primer lugar, no será la memoria de otras variables. provocar un error de compilación. Es decir, los compiladores de C y C no juzgan ni señalan que su código tiene un "acceso fuera de los límites", pero se compila "con éxito" como un acceso a la matriz fuera de los límites. límites. Cuando se ejecuta, su rendimiento es variable. A veces parece que no pasa nada y el programa sigue ejecutándose (por supuesto, a veces se han producido algunos resultados de error, el programa se bloquea de repente). asegúrese de hacerlo en la programación, juzgue si está fuera de los límites para garantizar la corrección del programa. \x0d\Un error común es cometer errores en el valor de tamaño y el valor de acceso al subíndice de la matriz. La matriz comienza desde 0 y el valor de acceso máximo es tamaño-1 \x0d\3. Solución\x0d\ Dado que el número de elementos de la matriz no se pasa a la función de llamada como contenido de parámetro real de forma predeterminada, causará problemas relacionados con el acceso a la matriz fuera de los límites Para resolver el problema, puede pasar la matriz. El método para el número de elementos es: use dos parámetros reales, uno es el nombre de la matriz y el otro es la longitud de la matriz. \x0d\Ejemplo:\x0d\\x0d\#include\x0d\\x0d\void PutArray(int *p, int length)\x0d\\x0d\{\x0d\\x0d\ // Determinar la validez de la entrada parámetros p y longitud aquí\x0d\\x0d\ ?\x0d\\x0d\ for(int \x0d\i= 0;i