strcpy与memcpy的区别
2016-04-18 19:09
435 查看
strcpy与memcpy的区别
1.复制的内容不同:strcpy()只能复制字符串,而memcpy()可以复制任意内容,例如字符数组、整型、结构体、类等。2.复制的方法不同:strcpy()不指定长度,它遇到被复制字符串结束符”\0”才结束拷贝,所以容易溢出。
memcpy()则是根据其第三个参数决定复制的长度。
3.用途不同:通常在复制字符串时用strcpy(),而需要复制其他类型数据时则一般用memcpy()。
#include <iostream> #include <assert.h> usingnamespacestd; // 为了实现链式操作,将目的地址返回,strcopy()可作为其它函数的参数(实参) char* strcopy(char* dest,const char* src) { assert(dest != NULL && src!= NULL); // 指针安全检查 while ((*dest++ = *src++) != '\0'); return dest; } void* memcopy(void* dest,const void* src,size_t cout) { assert(dest != NULL && src != NULL); // 指针安全检查 char* pDest = (char *)dest; char* pSrc = (char *)src; while(cout--) { *pDest++ = *pSrc++; } *pDest = '\0'; return dest; }
相关文章推荐
- mxnet代码剖析之--Symbol篇
- Android Studio开发工具学习篇章一
- Json解析
- VC静态文本控件的缩放问题
- Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.解决
- 二分图的最大匹配算法
- Linux下Nodejs安装(完整详细)
- js实现『加载更多』功能实例
- EventBus使用详解(二)——EventBus使用进阶
- Python发送邮件(以163邮箱为例)
- RN(react native)入坑指南-06,项目开发结构(代码分层组织)
- java中的|与||,&与&&的区别,与、或,非、异或、位运算
- 【面试经历】实习生--腾讯
- Mac下安装Redis
- C#枚举类型
- 存储类型auto,static,extern,register的区别
- ECLIPSE 字体设置
- SPRING的事务传播特性
- Mac OS 上设置 JAVA_HOME
- shell脚本之grep使用详解