zoukankan      html  css  js  c++  java
  • cstring中关于内存操作的函数

    memcpy

    void * memcpy ( void * destination, const void * source, size_t num );
    将一块指定大小字节数的内存复制到另一块内存中,注意两块内存不可重叠

    memmove

    void * memmove ( void * destination, const void * source, size_t num );
    与memcpy类似,但两块内存可以重叠

    memcmp

    int memcmp ( const void * ptr1, const void * ptr2, size_t num );
    比较两块内存指定字节数大小的数据是否一样,返回0表示一样

    memset

    void * memset ( void * ptr, int value, size_t num );
    将某块内存指定字节的内容都设置为value的内容

    一般情况下,int的大小为4字节,比一个字节大。所以只有value最后八位的内容有效。

    百科百科的说明

    memset(void s, int ch,size_tn);中key实际范围应该在0~~255,因为该函数只能取ch的后八位赋值给你所输入的范围的每个字节,比如int a[5]赋值memset(a,-1,sizeof(int )5)与memset(a,511,sizeof(int )*5) 所赋值的结果是一样的都为-1;因为-1的二进制码为(11111111 11111111 11111111 11111111)而511的二进制码为(00000000 00000000 00000001 11111111)后八位都为(11111111),所以数组中每个字节,如a[0]含四个字节都被赋值为(11111111),其结果为a[0](11111111 11111111 11111111 11111111),及a[0]=-1,因此无论ch多大只有后八位二进制有效,而八位二进制[2] 的范围(0~255)YKQ改。而对字符数组操作时则取后八位赋值给字符数组,其八位值作为ASCII 码。

    memchr

    const void * memchr ( const void * ptr, int value, size_t num );
    void * memchr (void * ptr, int value, size_t num );
    

    从ptr所指内存区域的前num个字节查找字符value(被截断成unsigned char)。

  • 相关阅读:
    深度学习:Keras入门(一)之基础篇(转)
    《神经网络与机器学习》导言
    GAN综述
    VS2017专业版和企业版激活密钥
    IntelliJ Idea 常用快捷键列表
    数据库SQL优化大总结之 百万级数据库优化方案
    git使用教程
    VS2015常用快捷键总结
    心跳包实现
    基于OAuth 2.0的第三方认证 -戈多编程
  • 原文地址:https://www.cnblogs.com/h-hg/p/8467544.html
Copyright © 2011-2022 走看看