gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性
首先,这些C函数,在VS上要加_s后缀的原因是,这些函数存在字符串越界等问题,可以参考这篇文章,https://blog.csdn.net/silleyj/article/details/8545408
个人猜测:由于这些C函数存在这些问题,所以VS编译器直接屏蔽了这些函数,然后用了一套加上后缀_s的函数来实现相同的功能,为了解决之前函数的越界的问题,_s系列的函数又分别增加了一些形参,比如长度等,所以,即使我们在C语言函数的基础上加上_s,还是会出现参数太少或形参类型和实参类型不匹配的问题。查看_s函数的形参列表的方式是:将光标移到你要查询的函数名里,然后单击右键,选择查看定义(或者使用快捷键 Alt + F12),然后就可以看到新版本的安全的C函数的形参列表了,根据这个形参列表设置实参就可以了
比如:
gets_s()函数的查询结果:
,可以看出,这个函数需要两个参数,一个是字符串的首地址,另一个是字符串的最大长度
strcpy_s()函数的查询结果:
,可以看出,这个函数需要传递三个参数,分别是目的字符串首地址, 目的地址的大小, 原字符串的首地址
scanf_s的查询结果是:这个查询不出来,可以参考这篇文章:https://blog.csdn.net/silleyj/article/details/8545408, 输入字符串还要传递一个大小,如:scanf_s("%s", s, 20);
gets(s)函数可以读取输入的字符序列里的空格,作用相当于getline(cin, s);
scanf("%s", s),只能空格前面的字符串,即认为遇到空格则停止读取,作用相当于cin >> s;
栈的随机性:
//#include "SeqList.h"
#include <stdio.h>
#include <string.h> static int c = ;
int b = ;
int main()
{ int a = ;
const int d = ;
printf("%p\n", &a); //栈的随机性,使得a所在的栈段的位置在不断变化,所以a的地址每次执行这个文件a的地址都会变化
printf("%p\n", &c);
printf("%p\n", &b);
printf("%p\n", &d);
return ;
}
有关内存分区可以参考这篇文章:https://www.cnblogs.com/bakari/archive/2012/08/05/2623637.html
gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性的更多相关文章
- C++笔记(1)----此运算符函数的参数太多
在VS2015中定义了这样一个类: #include<iostream> #include<vector> #include<string> using names ...
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参
python字典dictionary几个不常用函数例子 一.字典声明 如,d={}; d= {'x':1,'b':2} d1 = dict(x=1,y=2,z=3) d2 = dict(a=3 ...
- Visual Studio+VAssistX自动添加注释,函数头注释,文件头注释
转载:http://blog.csdn.net/xzytl60937234/article/details/70455777 在VAssistX中为C++提供了比较规范注释模板,用这个注释模板为编写的 ...
- Visual Studio 2010/2013 查看DLL接口(函数)
1. “应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口 ...
- Python基本语法_函数属性 & 参数类型 & 偏函数的应用
目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...
- python27期day09:函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数、作业题。
1.函数的作用:封装代码.大量的减少了重复的代码. 2.全局空间:顶行写的就是全局空间. 图解 : 3.函数的定义: def 是一个关键字.申明要定义一个函数 my_len 函数的名字.遵循变量命名的 ...
- JS中函数的本质,定义、调用,以及函数的参数和返回值
要用面向对象的方式去编程,而不要用面向过程的方式去编程 对象是各种类型的数据的集合,可以是数字.字符串.数组.函数.对象…… 对象中的内容以键值对方式进行存储 对象要赋值给一个变量 var cat={ ...
- ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...
- java的形参与实参的区别以及java的方法
package com.lv.study; public class Demo05 { public static void main(String[] args) { //我想要用什么分隔符进行分隔 ...
随机推荐
- L270 运动前要热身
If I'm being really honest, the only time I actually remember to stretch before a workout is when I' ...
- ionic的actionsheet安卓样式不正常的坑及解决之道
这是actionsheet该有的样子,可是android下变成了这样: 百度后,发现修改lonic.css,注释这段代码就可以了:
- :after和:before伪元素的解释
:after 是清除浮动 让其高度和内容高度相同 :before 是防止上边塌陷 关注微信小程序
- HDU 6090 17多校5 Rikka with Graph(思维简单题)
Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...
- 当超强台风“山竹”即将冲进南海,Power BI 你怎么看?
这个周末“山竹 ”强势来袭!很多人的目光都在关注暴力水果“山竹”,这个号称70年最强最大风力超17级 台风“山竹”今天就已经在小悦家窗台肆虐咆哮了一天了!不知其他的小伙伴们是不是好好的一个周末就只能被 ...
- Django之模板层-继承
模板语法:继承 Django模版引擎中最强大也是最复杂的部分就是模版继承了.模版继承可以让您创建一个基本的"骨架"模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 b ...
- nginx高并发下配置参数
今天下午,测试组同事模拟800个用户同时发起请求,nginx开始报错, "Too Many Open Files" 我们使用的是Dell R430服务器,2个物理CPU,每个CP ...
- Unity反射探针用法教程
Unity 3D反射探针 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心 ...
- 服务器-华为RH2288H V3-Server 2008R2忘记登录密码操作方法
1.插入PE盘,重启服务器. 下载地址:http://pan.baidu.com/s/1c16cP6C 密码: 18hq 注:这是支持全系列阵列卡的专用服务器PE工具,市面上的绝大多数PE在服务器中都 ...
- SSAS aggregation 的作用及其使用
作用: 聚合是为了解决查询在运行时的效率低下,在数据立方体部署的时候进行聚合,实际上是对数据立方体的预处理,方便以后查询.如若在部署时未进行聚合,则在以后每次查询时实际上都会进行一次集合的操作,等待结 ...