zoukankan      html  css  js  c++  java
  • [C++]数组处理相关函数(memcpy/memset等)

    头文件:string.h或者memory.h

    【1】void *memcpy(void *dest, const void *src, size_t n);//数组元素拷贝
      功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

    【2】void *memset(void *s, int ch, size_t n);//重置数组元素与初始化
      功能:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
      memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法

    #include<iostream>
    #include<string.h>
    using namespace std;
    
    int main(){
        int array_a[12] = {23,45,6,7,4776,834,99954};
        int array_b[12];
    
        memset(array_b, -1, sizeof(array_a)); //将数组b的各元素初始化为-1
    
        memcpy(array_b, array_a+1, sizeof(int)*6);
        for(int i=0;i<12;i++){
            printf("%d ", array_b[i]);
        }
        return 0;
    }
    

    【3】int memcmp(const void *buf1, const void *buf2, unsigned int count);//数组元素比较

      功能:比较内存区域buf1和buf2的前count个字节。注意:按照字节比较的

      返回值:当buf1<buf2时,返回值小于0;当buf1==buf2时,返回值=0;当buf1>buf2时,返回值大于0

    【4】void *memmove( void* dest, const void* src, size_t count );//

      功能:由src所指内存区域复制count个字节到dest所指内存区域。

      memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域

      但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。

    // memmove.c
    #include <stdio.h>
    #include <string.h>
    
    int main(void){
        char s[]="Golden Global View";
        memmove(s,s+7,strlen(s)+1-7);
        printf("%s",s);
        getchar();
        return 0;
    }
    

    =>output:

      Global View

      

  • 相关阅读:
    QtDBus快速入门
    论Qt容器与STL
    JS中的!=、== 、!==、===的用法和区别
    JS操作JSON总结
    select2使用方法总结
    Entity Framework插入数据报错:Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
    Windows登录类型及安全日志解析
    <script type="text/html"></script> js模版使用
    在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别
    关于session,cookie,Cache
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/9068296.html
Copyright © 2011-2022 走看看