memset memcpy使用
来源:互联网 发布:长春淘宝客服挣钱么 编辑:程序博客网 时间:2024/06/09 19:49
memset
需要的头文件
在C中 <string.h>
在C++中 <cstring>
函数介绍
void *memset(void *s, int ch, size_t n);
函数解释:将 s 中前 n 个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[1]。
常见错误
第一: 搞反了 ch 和 n 的位置.
一定要记住如果要把一个char a[20]清零,一定是 memset(a,0,20);
而不是 memset(a,20,0);
第二: 过度使用memset,我想这些程序员可能有某种心理阴影,他们惧怕未经初始化的内存,所以他们会写出这样的代码:
char buffer[20];
memset(buffer,0,sizeof(char)*20);
strcpy(buffer,"123");
这里的memset是多余的. 因为这块内存马上就被覆盖了,清零没有意义.
第三: 其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现
int some_func(struct something *a){
…
…
memset(a,0,sizeof(a));
…
}
这里错误的原因是VC函数传参过程中的指针降级,导致sizeof(a),返回的是一个 something*指针类型大小的的字节数,如果是32位,就是4字节。
memcpy
所需头文件
#include <string.h>
#include <string.h>
void *memcpy(void *dest, const void *src, size_t n);
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
函数返回dest的值。
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
函数返回dest的值。
示例:
阅读全文
0 0
- memset、memcpy使用陷阱
- memset memcpy使用
- memset和memcpy使用教训
- Memset memcpy
- memcpy,memset
- memcpy/memset
- memset memcpy
- memset & memcpy
- memset(),memcpy()
- memset、memcpy与strcpy使用心得
- memset与memcpy函数使用详细说明。
- 关于strcpy、memset、memcpy的使用详解
- memset、memcpy和strcpy函数使用
- 关于strcpy、memset、memcpy的使用详解
- memset,memcpy,strcpy的使用与区别
- memcpy,memset,memmove的使用与实现
- strcpy、memset和memcpy的使用
- string 不能使用memset or memcpy
- Ignatius and the Princess IV(暴力)
- 快速删除工作表中所有的文本框
- 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组
- 登录失败次数限制(原生php代码实现)
- 非阻塞式Connect
- memset memcpy使用
- 深度学习/机器学习的处理器列表(最全_中文版)
- Memcache的并发问题和利用CAS的解决方案
- HDU 1033 Edge(水题)
- 技术文章 | 《大数据分析原理与实践》
- Android 解决MissingTranslation打包报错
- eclipse安装IDE的路径
- Node.js-koa入门
- 基于嵌入式Linux/Qt 开发RFID智能仓储指纹管理系统