strcpy,strncpy和strncpy_s的区别 memcpy strncpy 区别

赞成0反对

首先说下strcpy

strcpy()是依据源串的作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有BufferOverflow问题。

strncpy 的原型为:

char * strncpy(char *dest, char *src, size_t n);

其将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针,所以,用户定义好size,就没有bufferoverfolow的风险

目前,strncpy是字符串拷贝推荐的用法

加_s版本则是从VS2005开始推出的安全版本,

而加_s版本之所以安全,是因为他们在接口增加了一个参数numElems来表明dest中的字节数,

防止目标指针dest中的空间不够而导致出现Bug,同时返回值改成返回错误代码,而不是为了一些所谓的方便而返回char*。这样接口的定义就比原来安全很多。

strcpy,strncpy和strncpy_s的区别 memcpy strncpy 区别

但是,_s版本并不是标准库,所以,不推荐使用

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/305550.html

更多阅读

批量授权、零售版和OEM的区别 oem授权书

批量授权、零售版和OEM的区别——简介批量授权、零售版和OEM的区别当涉及到购买许可证(license)的问题,相信许多人都有过迷茫。不知道一些相应的license的问题。而购买license的渠道很多,那么我们应该要购买哪些license呢?他们的区别又

告诉您高丽参和西洋参的区别方法 高丽参 西洋参 人参

许多消费者都在问高丽参和西洋参的区别。西洋参又称广东人参、花旗参。高丽参和西洋参的区别主要是品种和药用功效的不同,但这两种参都统属人参科。高丽参和西洋参的区别方法高丽参,又叫做韩国红参,是属于热性的中药,大补气血的上品

哈士奇和阿拉斯加的区别 狗狗智商排名

哈士奇和阿拉斯加的区别——简介有一种狗狗和哈士奇长得很像,毛要比哈士奇长了许多。不要惊讶,它叫“阿拉斯加”。原产美国的阿拉斯加州,为什么它长得那么像哈士奇,而且都是雪橇犬呢?接下来,就让我们一起揭开它们神秘的面纱!哈士奇和阿拉

文旦和柚子的区别 姑娘果的功效与作用

文旦和柚子的区别——简介文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——工具/原料文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——方法/步骤文旦和柚子的区别 1、文旦 名称:文旦 产地:浙江台州玉环 别名

声明:《strcpy,strncpy和strncpy_s的区别 memcpy strncpy 区别》为网友歌赠友分享!如侵犯到您的合法权益请联系我们删除