scanf
- ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露。
scanf_s
- 新版的VS中提供了scanf_s()函数来代替scanf(),新版的VS中也提供了scanf_s(),在调用时,必须提供一个数字以表明最多读取多少位字符。
char buf[5] = {0}
scanf_s("%s", &buf, 5)
- scanf_s最后一个参数n是接收缓冲区的大小(即buf的容量),表示最多读取n-1个字符,最后一位由'\0'占着
网友评论