首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言 scanf_s 緩衝區長度參數缺失導致讀取異常

     編輯:程式設計疑難解答

錯誤代碼

char name[40];
scanf_s("%s", name); // 缺少緩衝區長度參數

修正

scanf_s("%s", name, 40); // 第三個參數為緩衝區大小(字符數)

說明

  • scanf_s 是 C11 附錄 K 安全函數,必須提供目標緩衝區大小,防止緩衝區溢出。
  • 若使用標準 scanf 則不需要,但不安全。
  • Visual Studio 默認啟用 scanf_s,其他編譯器可能不支持。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved