memset & memcpy

memset

void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

memset的头文件:

#include<memory.h>
// or
#include<string.h>

memset可以用于赋值和初始化数组

因为char是1字节,memset是按照字节赋值的,所以,相当于把每个字节都设为输入的那个数。例如:

memset(dp,0,sizeof(dp));

int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了00000000 00000000 000000000 00000000

memset(dp,-1,sizeof(dp));

赋值为-1的话,放的是11111111 11111111 11111111 11111111

memset(dp,1,sizeof(dp));

以上代码执行后,dp数组的内容为 00000001 00000001 00000001 00000001 转化为十进制后不为1

常用的memset操作

memset(a,127,sizeof(a))

将数组的全部元素,初始化为一个很大的数

memset(a,128,sizeof(a))

将数组的全部元素,初始化为一个很小的数

memcpy

void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1

例子(来自菜鸟教程)

#include <stdio.h>
#include<string.h>int main(){char *s="http://www.runoob.com";char d[20];memcpy(d, s+11, 6);// 从第 11 个字符(r)开始复制,连续复制 6 个字符(runoob)// 或者 memcpy(d, s+11*sizeof(char), 6*sizeof(char));d[6]='\0';printf("%s", d);return 0;
}

结果:

runoob

Reference

C++中memset()函数的用法详解

memset memcpy相关推荐

  1. [收集] C++ memset ,memcpy 和strcpy 的区别

    Memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为' '或'\0': 例:char a[100];memset(a, '\0', sizeof(a)); mems ...

  2. memset,memcpy,strcpy 的区别

    一.函数原型 strcpy extern char *strcpy(char *dest,char *src); #include <string.h> 功能:把src所指由NULL结束的 ...

  3. memcpy()详解

    相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy() 表头文件: #include <string.h> 定义函数: void ...

  4. linux memcpy需要头文件,Linux编程中中各种头文件

    1.unistd.h 是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数.write函数和getpid函数 2.stdlib.h stdl ...

  5. 动态检测内存错误利器ASan

    ASan,即Address Sanitizer,是一个适用于c/c++程序的动态内存错误检测器,它由一个编译器检测模块(LLVM pass)和一个替换malloc函数的运行时库组成,在性能及检测内存错 ...

  6. [转]symbian基本类型转换

    TDesC是所有字符类的祖先 标准C语言 Symbian OS 让一个字符串进入2进制代码 Static char hellorom[]="hello" _LIT(khelloro ...

  7. 二十万字C/C++、嵌入式软开面试题全集宝典六

    目录 101. 字节对齐有什么作用? 102. C语言中#pragma用法 103. new和malloc的区别? 104. malloc/calloc/realloc三者之间的区别? 105. de ...

  8. 二十万字C/C++、嵌入式软开面试题全集宝典一

    目录 1.引用和指针的区别? 2.从汇编层去解释一下引用 3.C++中的指针参数传递和引用参数传递 4.形参与实参的区别? 5.static的用法和作用? 6.静态变量什么时候初始化 7.const? ...

  9. C++ 经典面试题

    1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在. 全局变量,static变量. (2)在栈上创建:在执行函 ...

最新文章

  1. 量子物理 詹班 计算机,6量子物理作业答案
  2. GDI+中常见的几个问题(6)
  3. Andorid之jni里面崩溃然后用errno分析结果解决问题
  4. HDU 3397 线段树 双懒惰标记
  5. java对List的优雅排序
  6. mybatis 注解忽略属性
  7. 计算机学科评估b是水平,学科评估B什么水平?
  8. 12v电量显示制作方法_12V电池电量指示电路
  9. 电子合同助力“在线教育”高效发展
  10. 2022起重机械指挥考试题模拟考试题库及在线模拟考试
  11. 【机房重构】C#子窗体关闭父窗体
  12. java毕业设计中山乡村文化旅游网络平台Mybatis+系统+数据库+调试部署
  13. abp zero mysql_2、ABPZero系列教程之拼多多卖家工具 更改数据库为Mysql
  14. 四、Testbench
  15. 2021中国IC封装基板市场现状及未来发展趋势
  16. springBoot防重复提交
  17. java实现PEKS_JAVA线程基础
  18. 系统操作原理:进程的状态和转换(五态模型)
  19. 汽车传动轴的优化设计matlab,传动轴的优化设计
  20. Opencv判断颜色相似的图片

热门文章

  1. 联想一直提示正在更新计算机启动配置,联想笔记本开机页面一直停留在准备配置windows 请勿关闭计算机 也没有以...
  2. python win7共享文件夹下载文件夹
  3. QT的安装 [新版2022]
  4. iOS 手指涂抹--局部模糊图片
  5. C++中的memset()函数
  6. 总结:UTC与GMT
  7. IT行业 经验···
  8. unity3d-常用组件
  9. MapReduce分布式计算框架
  10. 2016.7.12 情绪