[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;
}

[C++]数组处理相关函数(memcpy/memset等)

【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

  

原文链接: https://www.cnblogs.com/johnnyzen/p/9068296.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    [C++]数组处理相关函数(memcpy/memset等)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/274418

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午12:17
下一篇 2023年2月15日 上午12:18

相关推荐