zoukankan      html  css  js  c++  java
  • strcpy和memcpy

    切记,memcpy的头文件是memory.h
    strcpy和memcpy主要有以下3方面的区别。
    1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
    2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符""才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
    3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
    内存拷贝函数,memcpy(),该函数的头文件是mmemry.h

    • memcpy的原型为      void *memcpy(void *dest, const void *src, size_t n);
    • strcpy原型为:          char * strcpy(char * strDest,const char * strSrc)

    4.memcpy函数用于把资源内存(src所指向的内存区域)拷贝到目标内存(dest所指向的内存区域),size变量控制拷贝的字节数
     char dest[1024] = "12345678";//{0};
     const char src[5] = "1111";
     memcpy(dest,src,sizeof(src));则printf(dest);出来是1111
     如果memcpy(dest,src,4);则printf(dest);出来是11115678;因为上面的sizeof(src),包含'',所以拷贝过去的字符串以''结束,就只有1111,而如果传4个字符,'/0'是第五个字符,那就遇到dest[1024] 的''结束,所以是11115678
    5. strcpy是从src向dest拷贝字符,一个一个拷贝,当在src内发现,拷贝结束,在dest目标指针的最后也会加上一个.

    • strcpy(char * strDest,const char * strSrc)
  • 相关阅读:
    java模式及其应用场景
    redis配置密码 redis常用命令
    Redis可视化工具Redis Desktop Manager使用
    String类和StringBuffer类的区别
    centos下搭建redis集群
    eclipse maven项目中使用tomcat插件部署项目
    什么是反向代理,如何区别反向与正向代理
    数据库连接池的原理
    归并排序
    asio-kcp源码分析
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5712045.html
Copyright © 2011-2022 走看看