30/09/2018, 19:18

Sao hàm scanf_s nguy hiểm vậy?

Mình có chương trình này khi dùng scanf_s trong VS chạy thì sai mà khi dùng scanf thôi thì nó lại chạy đúng.
Trước đây mình cũng đã từng gặp trường hợp này 1 lần rồi à. Có vẻ cần lưu tâm đến ký tự trong hàm scanf_s và scanf này.

Code: http://codepad.org/n86BRNOx

John Nguyen viết 21:30 ngày 30/09/2018

Còn mình thì ngược lại của trường hợp bạn , chạy scanf visual kêu nguy hiểm scanf_s an toàn hơn :V

Hứa Anh Minh viết 21:23 ngày 30/09/2018

Theo như Microsoft thì scanf không bảo mật bằng scanf_s và dễ gây lỗi tràn bộ nhớ đệm

Hưng Arsenal viết 21:30 ngày 30/09/2018

Biết là nó bảo mật hơn. Cơ mà các bạn thử chạy cái code của mình xem. :3

Pham Van Hai viết 21:19 ngày 30/09/2018

Bạn sử dụng sai hàm scanf_s. Theo tài liệu của Microsoft, bạn phải đưa kích thước (số lượng) ký tự muốn nhập vào, ví dụ:

char s[10];
scanf_s("%9s", s, _countof(s)); // buffer size is 10, width specification is 9

cho ký tự:

char c;
scanf_s("%c", &c, 1);
Hưng Arsenal viết 21:31 ngày 30/09/2018

“kích thước (số lượng) ký tự muốn nhập vào”

Bạn nói rõ hơn cho mình chỗ này với à.

Bài liên quan
0