C++:memset ,memcpy和strcpy的根本区别


Posted in 面试题 onApril 27, 2013
#include “memory.h”
memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ‘或‘\0′;例:char a[100];memset(a, ‘\0′, sizeof(a));
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。
strcpy就只能拷贝字符串了,它遇到’\0′就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0′之前)是否超过50位,如超过,则会造成b的内存地址溢出。
strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
Memset
原型:extern void *memset(void *buffer, char c, int count);
用法:#include
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。

Tags in this post...

面试题 相关文章推荐
新东网科技Java笔试题
Jul 13 面试题
华为C++笔试题
Aug 05 面试题
C#和SQL Server的面试题
Aug 12 面试题
介绍一下Linux文件的记录形式
Apr 18 面试题
Linux开机引导的步骤是什么
Feb 26 面试题
配置管理计划的主要内容有哪些
Jun 20 面试题
你们项目是如何进行变更控制的
Aug 26 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
JavaScript获取当前url根目录(路径)
Feb 19 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
中软国际Java程序员机试题
Aug 19 面试题
J2ee常用的设计模式?说明工厂模式
May 21 面试题
C++的几个面试题附答案
Aug 03 #面试题
为什么会有内存对齐
Oct 10 #面试题
数组越界问题
Oct 21 #面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
Feb 22 #面试题
介绍一下#error预处理
Sep 25 #面试题
const char*, char const*, char*const的区别是什么
Jul 09 #面试题
雅虎笔试题(字符串操作)
Mar 24 #面试题
You might like
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
jQuery参数列表集合
2011/04/06 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
vue实现简单表格组件实例详解
2017/04/16 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
Python中functools模块函数解析
2017/03/12 Python
简单实现python画圆功能
2018/01/25 Python
python批量修改ssh密码的实现
2019/08/08 Python
用友笔试题目
2016/10/25 面试题
瀑布模型都有哪些优缺点
2014/06/23 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
电子信息专业自荐书
2014/02/04 职场文书
婚礼司仪主持词
2014/03/14 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers