1. 程式人生 > 其它 >隨筆3——scanf與scanf_s

隨筆3——scanf與scanf_s

技術標籤:隨筆字串c++c語言visual studio

VS2019xxx.dll處引發異常,寫入位置xxxxx時發生訪問衝突

如下圖中的類似問題,在我最近寫程式中遇到了好多次,為了解決scanf()在讀取時不檢查邊界的問題,vs中使用scanf()編譯時沒有錯誤,而除錯時會報如下圖類似錯誤。
在這裡插入圖片描述

在這裡插入圖片描述

解決辦法:
1.在不涉及字串的情況下,若使用scanf(),則直接開頭新增巨集定義即可。

#define _CRT_SECURE_NO_DEPRECATE

2.若涉及字串,使用scanf_s時,要在函式實參後面加上邊界限制,邊界大小根據字串大小而定,可大不可小。
如:

scanf_s("%s"
, &stu[count].num,15); scanf_s("%d%d%d%d%d", &stu[count].math, &stu[count].yy, &stu[count].dl, &stu[count].cyy, &stu[count].ty,45);

參考連結