memset,memcpy,strcpy 的区别

Memset、Memcpy、Strcpy 的作用和区别 本文详细介绍了Memset、Memcpy、Strcpy 的作用及三者的区别,函数原型及使用技巧等。 立即下载
一.函数原型
   strcpy
   extern char *strcpy(char *dest,char *src);
   #include <string.h>
   功能:把src所指由NULL结束的字符串复制到dest所指的数组中
   说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
   返回指向dest的指针

  memcpy
  extern void *memcpy(void *dest,void *src,unsigned int count);
  #include <string.h>
   功能:由src所指内存区域复制count个字符串到dest所指内存区域.
   说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针.
  
   memset
   extern void *memset(void *buffer,int c,int count);
   #include <string.h>
   功能:把buffer所指内存区域的前count个字节设置成字符c
   说明:返回指向buffer的指针.

二.区别
    memset 用来对一段内存空间全部设置为某个字符,一般用于在对定义的字符串初始化为' '或者'/0';
    例: char a[100];
          memset(a,'/0',sizeof(a));
   
   memcpy 是用来做内存拷贝,可以用来拷贝任何数据类型的对象,可以指定拷贝的数据长度;
   例:
           char a[100],b[50];
           memcpy(b,a,sizeof(b));   //注意:如果使用sizeof(a),会造成内存溢出
           mem是一段内存,他的长度,必须自己记住.memcpy是见着什么拷贝什么。
   
    strcpy 就只能拷贝字符串,它遇到'/0'就结束拷贝;
      例:char a[100],b[50];
              strcpy(a,b);
              如用strcpy(b,a)要注意a中的字符串长度(第一个'/0'之前) 是否超过50,如果超过,则会造成b的
  内存溢出.它是不会拷贝'/0'的,所以一般还有加一个语句:
              *a='/0';
  
 三.使用技巧
      memset 可以方便的清空一个数据结构的变量或数组.
      如:
        struct sample_struct
       {
              char  csName[16];
              int iSeq;
              int iType;
       };
       对于变量
       struct sample_struct  stTest;
       一般情况下,初始化stTest的方法:
        stTest.csName[0]='/0';
        stTest.iSeq=0;
        stTest.iType=0;
    而用memset:
       memset(&stTest,0,sizeof(struct sample_struct));
    如果是数组:
    struct sample_struct  TEST[100];
    memset(TEST,0,sizeof(struct sample_struct)*100);
    
   
 
 
  
  
         
浅析C++中memset,memcpy,strcpy的区别 本篇文章是对C++中memset,memcpy,strcpy的区别进行了详细的分析介绍,需要的朋友参考下 立即下载

相关推荐

焦距与视差的关系及其对深度估计的影响

焦距在立体视觉中的作用至关重要,它直接影响视差的大小,从而影响深度估计的精度。焦距越长,视差差异越大,物体的深度估计就越精确。这一关系使得焦距长的相机在一些需要高精度深度估计的应用场景中更加优越。了解焦距与视差的关系,对于优化相机配置和提升深度估计精度具有重要意义。在实践中,选择合适的焦距对于获得精确的深度信息至关重要,特别是在自动驾驶、虚拟现实、三维重建等领域,精确的深度估计能够提供更好的用户体验和技术支持。

计算机科学与技术专业学生的成长之路 1670

fill() 函数 / memset() 函数 对比 C/C++

memset() 函数 1.给char以外的数组赋值时,只能初始化为0或者-1 2.给char类型的数组赋值,可随意 #include <cstring> int str[10]; memset(str, 0, sizeof(str)); memset(str, -1, sizeof(str)); char str[50]; strcpy(str,"This is string.h ...

Rudy的博客 170

FPGA实战:手把手教你实现VESA DSC编码(附Verilog代码解析)

本文详细介绍了如何使用FPGA实现VESA DSC编码器,包括核心架构设计、Verilog代码实现与优化技巧。通过流水线设计、色彩空间转换和预测编码等关键技术,帮助开发者掌握工业级DSC编码器的开发流程,并提供实用的调试与性能优化方法。

weixin_29165725的博客 403

C/C++ 中 fill ( ) 的运用及与memset ( ) 的区别

fill()函数参数:fill (first , last , num);    first 为容器的首迭代器,last为容器的末迭代器,num为将要替换的值。 #include #include #include using namespace std; int main() { int a[10],b[10]; memset(a,0,sizeof(a)); fill(b,b+10,

jadeyansir的博客 960

【OpenClaw从入门到精通】第17篇:OpenClaw巨头布局实战:阿里CoPaw/腾讯云/百度/火山引擎深度拆解(2026实操版)

2026年OpenClaw以22.8万星标登顶GitHub,引发阿里、腾讯、百度、字节等互联网巨头入局角逐。本文基于公开技术文档与实测经验,深度解析四大巨头的OpenClaw布局战略:阿里云CoPaw的全栈托管、腾讯云的流量入口绑定、百度智能云的搜索生态内嵌、火山引擎的极致智力供给。从核心原理、算法构建、实操流程三个维度,提供可直接落地的接入方案,包含完整代码示例与执行结果验证。通过流程图可视化核心架构,搭配避坑指南与选型矩阵,帮助新手快速上手、进阶读者实现多厂商协同部署。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1680

软件需求规格说明书(SRS)标准模板

《软件需求规格说明书(SRS)框架解析》摘要: 本文档系统阐述了SRS的标准结构,包含7大核心部分:1)引言(目的、背景和术语);2)总体描述(产品定位与用户特征);3)功能需求(模块化功能说明);4)非功能需求(性能、安全等指标);5)接口需求(用户/硬件/软件接口);6)其他技术要求;7)附录(图表与参考资料)。重点突出了功能需求模块的标准化描述模板(FR-01),以及安全需求中的HTTPS通信、SHA-256加密等关键指标。该框架为软件开发提供了明确的需求基准,涵盖从业务背景到技术实现的完整链条,是确

moton2017的博客 2882

第十三章_类和对象

class关键字(注意有分号)

m0_72370216的博客 469

Raspberry Pi 4B 蓝牙串口(SPP)配置与使用

Linux、Android、Windows 等操作系统带有在引导期间启动的蓝牙守护进程/蓝牙服务。 对于与监视器连接并使用 GUI(如 GTK 等)运行的设备,只需多次单击即可轻松启用并连接到附近的设备。 但是在无头设备的情况下,我们必须依赖于需要在命令行上运行的不同命令。 这篇博客我们将讨论如何在无头树莓派上通过蓝牙设备连接附近。

视觉与物联智能 2744

strcpy,memset,memcpy三者的区别

2.memcpy用来做内存拷贝,可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置。3.memset的作用是对一段内存空间全部设置为某个字符,常用在内存空间的初始化,其原型函数为:void *memset(void *s,int c,size_t n);1.strcpy的作用是拷贝字符串,当它遇到'\0'时结束拷贝,原型为:extern char *strcpy(char *dest,char *src);

酸柠檬的博客 904

基于STM32设计自动输液监测系统(241)

该系统集成了液位传感模块、光电传感器、电机模块、按键模块和OLED显示屏等多个功能模块,以实现全面的输液过程监控和控制。液位传感模块能够实时监测输液瓶中的液位,当液位到达限定值时,系统会自动控制步进电机夹紧输液管,并发出报警提醒,确保输液过程不会因液位过低而中断。

1341

6、Cocos2D游戏开发:精灵添加与角色实现

本文详细介绍了在Cocos2D游戏开发中如何添加背景精灵和玩家角色精灵。通过创建GameScene场景、组织项目资源、使用多分辨率图像适配不同设备,并深入讲解了将角色拆分为上下半身以实现更真实瞄准效果的原理。文章还解析了Cocos2D的图像搜索机制、锚点概念及其应用,以及如何通过父子节点关系管理复合角色。最终实现了猎人角色在场景中的正确显示与定位,为后续动画和交互功能打下基础。

e3f4g5的博客 90

strcpy、memcpy和memset之间的区别

今天刷题时遇到了这个问题,记录一下。 strcpy比较简单,就是拷贝字符串,遇到'\0'时结束拷贝。 memcpy用来做内存拷贝,可以拷贝任何数据类型的对象并指定拷贝数据的长度:char a[100],b[50]; memcpy(b, a, sizeof(b)); 总结一下...

weixin_30632089的博客 414

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2368

memset,memcpy,strcpy的区别

memset,memcpy,strcpy的区别 一.函数原型    strcpy    extern char *strcpy(char *dest,char *src);    #include    功能:把src所指由NULL结束的字符串复制到dest所指的数组中    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。    返

YUZHIBOYI的专栏 1327

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

strcpy,memcpy和memset的区别

strcpy函数的原型:char* strcpy(char* dest, const char* src); memcpy函数的原型:void *memcpy( void *dest, const void *src, size_t count ); memset函数的原型:memset(void *s, int ch,size_t n); strcpy,memcpy和memset主要...

矢月的博客 1459

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

memset ,memcpy 和strcpy 的根本区别?

http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html Memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’; 例:char a[100];memset(a, '\0', sizeof(a));      memset可以方便的清空一个结构类型的变量或数组。

JUNGOU1的专栏 425

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

strcpy memcpy和memset的区别

strcpy函数只能复制字符串,返回目标字符串的首地址 注意: strcpy为什么有返回值,有什么用? strcpy不需要返回值,这个返回值是为了增加灵活性如支持链式表达。 memcpy函数可以复制任意内容,例如字符数组、整型、结构体、类等。 注意: memcpy要考虑dest和src的地址重叠,这样造成的后果无法预知。 所以第一步dest必须在src的左边或者src+size右...

zz56z56的博客 724

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

转自:https://blog.youkuaiyun.com/stock888/article/details/3930847 C++:memset ,memcpy 和strcpy 的根本区别(转) #include "memory.h" memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, '/0', siz...

qq_37871669的博客 237

memset、memcpy与strcpy、strcat区别

memset、memcpy与strcpy、strcat区别

尚博客 307

strcpy,memcpy,memset的区别

strcpy,memcpy,memset的区别strcpymemcpymemset strcpy 只能用来拷贝字符串,遇到 ‘\0’ 即结束; 不能指定拷贝长度; memcpy 可以用来拷贝任何数据类型的对象; 支持指定拷贝长度; memset 用来对某一段连续的内存空间,全部置为某个字符; 常用来作初始化或者清除结构类型的变量或数组; 支持指定拷贝长度 from:https://www.cnbl...

sisil的博客 266

memset、memcpy、memmove的常见用法和区别,以及memcpy与strcpy的区别

今天听到有个同学,去面试。考到了关于结构体之间内容的复制,题目大概是知道两个结构体名A,B,但不知道A,B结构体中的内容。要求你把A结构体的成员,复制到B结构体中。 在这里需要用到memcpy函数。所以我今天把相关mem函数进行一个小结。供大家参考。有什么不对的地方,请指出。 strcpy 原型:extern char *strcpy(char *dest,cha

豌豆射手的专栏 848

memcpy & memset & strcpy的区别

memcpy & strcpy 1.函数原型:char* strcpy(char* dest,const char* src); void * memcpy(char* dest,const char* src,size_t count); 2.复制内容不同:strcpy只能复制字符串; memcp...

a647186998872097的博客 129
上一篇: MPEG4 File Format [BOX Order]
下一篇: 如何正确使用内存
ybugchen
博客等级 码龄22年 1粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值