Después de ejecutar el programa en lenguaje C, el exe deja de funcionar. ¿Por qué?
La razón por la que exe deja de funcionar cuando se ejecuta un programa en lenguaje C es por desbordamiento de memoria y error del compilador.
El primer tipo: desbordamiento de memoria
La comprensión popular del desbordamiento de memoria (falta de memoria) es que no hay suficiente memoria. La memoria requerida por el programa excede con creces el tamaño de. La memoria instalada en el host se llama desbordamiento de memoria. El sistema indicará que la memoria se ha desbordado y, a veces, el software se cerrará automáticamente. Después de reiniciar la computadora o el software, se libera parte de la memoria y el software puede ejecutarse normalmente.
Segundo tipo: error del compilador
Algunos compiladores usan diferentes estándares (por ejemplo, el estándar C99 puede usarse en una máquina, mientras que el estándar C99 puede usarse en otra máquina). (usando el estándar C11), o debido a daños en la biblioteca de enlaces del compilador, en algunos casos puede causar que el programa tenga errores anormales que no se limitan a fallar y salir. La solución habitual es descargar la última versión del. Instalación IDE desde el sitio web oficial del compilador.
Ejemplos:
1. Dividir por cero.
2. Matriz fuera de límites: int a[3]; a[10000000]=10.
3. Puntero fuera de límites: int * p; p=(int *)malloc(5 * sizeof(int));
4. Utilice el espacio liberado: int * p; p=(int *)malloc(5 * sizeof(int));
5. La matriz es demasiado grande y excede el alcance de la pila, lo que provoca un desbordamiento de la pila: int a[100000000], no se asigna memoria List L=(List)malloc(sizeof(struct LNode)) . runtime?error? (error de tiempo de ejecución) significa que el programa falla a mitad de ejecución.
Información ampliada:
Características específicas de C:
1. El lenguaje C es un lenguaje de programación estructurado con alcance variable y lenguaje de procedimientos funcional.
2. Todos los parámetros pasados en lenguaje C se pasan por valor (pasar por valor). Además, también se puede pasar un puntero (un puntero pasado por valor).
3. Se pueden combinar diferentes tipos de variables mediante estructuras (struct).
4. Solo hay 32 palabras clave reservadas, lo que hace que la denominación de variables y funciones sea más flexible.
5. Algunos tipos de variables se pueden convertir, como variables enteras y de caracteres.
6. A través de punteros, el lenguaje C puede realizar fácilmente un control de memoria de bajo nivel.
7. El preprocesador hace que la compilación del lenguaje C sea más flexible.
Material de referencia: lenguaje C-Enciclopedia Baidu