Muy pocos parámetros usados para la llamada / Conflicto al escribir la posición / Se detectó una rutina de manejo de excepciones no válida

Muy pocos parámetros usados ​​para la llamada / Conflicto al escribir la posición / Se detectó una rutina de manejo de excepciones no válida

Para una clase de problemas que los recién llegados pueden encontrar en el proceso de aprendizaje C

A menudo encontramos esta situación en nuestros estudios:

#include<stdio.h>
void main()
{
    
    
	char note[100] = "";
	scanf("%s", note, 100);//本行会报错提醒我们使用scanf_s代替scanf
}

Muchas funciones con el sufijo "_s" sirven para hacer que la función original sea más segura. Pase un valor de tamaño relacionado con el parámetro para evitar citar elementos inexistentes. A veces, los piratas informáticos pueden usar la inseguridad original para piratear el sistema. Por ejemplo: char note [100]; está escrito como scanf_s ("% s", note, 100); o scanf_s ("% s", note, sizeof (note)); es correcto, existe este parámetro 100 para mejorar la precisión .

Enumeré tres excepciones comunes

  • [1] Muy pocos parámetros para llamar
  • [2] Se produjo un conflicto al escribir la ubicación
  • [3] Se detectó una rutina de manejo de excepciones no válida

在处理这三个异常时可以观察代码是否有这样的错误:

//注释内是错误写法
scanf_s("%s", note,100);//缺少参数100 scanf_s("%s", note);

sprintf_s(temp, sizeof(temp) ,"\n收入\t%s\t\t%.2f\t\t%.2f", note, money, blance);
//缺失参数sizeof(temp)sprintf_s (temp, "\n收入\t%s\t\t%.2f\t\t%.2f", note, money, blance);

strcat_s(data,sizeof(data),temp);//同样缺失参数  strcat_s(data,temp);

Espero ayudarlos a los dos novatos.

Supongo que te gusta

Origin blog.csdn.net/Eric_xkk/article/details/108563892
Recomendado
Clasificación