美文网首页C/C++知识点
memset,memcpy,memmove函数

memset,memcpy,memmove函数

作者: 木鱼_cc | 来源:发表于2018-05-21 20:16 被阅读3次

这三个函数分别实现内存设置,内存拷贝和内存移动

需要包含头文件#include <string.h>

1.memset函数:内存的值重新设置

void *memset(void *s ,int c ,size_t n);

设置一块内存区域,第一个参数是内存首地址,第二个参数是要设置的值,第三个参数是这块内存的大小,单位:字节

如:
#include <string.h>
int main(){
    
    char array[10] = { 0 );
    array[1] = 100;
    array[5] = 2;
    array[8] = 6;
//想把这个数组所有成员再次初始化为0
===============原始=============
fot(int i = 0 ; i< 10 ; i++){
    array[i] = 0;
}
===============memset=============
memset(array,0,sizeof(array));

return 0;
}

2.memcpy函数:拷贝内存

使用memcpy必须确保内存没有重叠

内存重叠区域说明.png
void *memcpy(void *dest, const void *src, size_t n);//内存拷贝
第一个参数是**目标内存**首地址,第二个参数是**源内存**首地址,第三个参数是拷贝字节数

int main(){
   int a1[10] = {1,2,3,4,5,6,7,8,9,10};
   int a2[10];
   memcpy(a2,a1,sizeof(a1));//把a1中所有的内存拷贝到a2,对应地拷

sizeof(a1)改成4,只拷贝第1项

}

3.memmove函数:移动内存

和memcpy很像,但是不需要考虑重叠

void *memmove(void *dest, const void *src, size_t n);//内存移动,参数与memcpy一致

int main(){

    int a1[10] = {1,2,3,4,5,6,7,8,9,10};
   int a2[10];
   memmove(a2,a1,sizeof(a1));//把a1中所有的内存拷贝到a2,对应地拷

}

相关文章

  • memset,memcpy,memmove函数

    这三个函数分别实现内存设置,内存拷贝和内存移动 需要包含头文件#include 1.memset函数:内存的值重新...

  • memset, memcpy and memmove

    memset 函数原型 头文件include 功能将dest所指的内存区域的前size个字节的值全部设置为ch指...

  • memcpy memmove 函数

    memcpy函数 函数原型 功能:由src指向地址为起始地址的连续 size个字节的数据复制到以dest指向地址为...

  • memcpy与memmove的区别

    memcpy和memmove都是C语言的库函数,相比于strcpy和strncpy只能拷贝字符串数组,memcpy...

  • memmove 和 memcpy 的区别

    memmove和memcpy都是拷贝,区别是memmove会判断方向,如果有重叠的区域那么memcpy就会有问题 ...

  • 总结:头文件cstring函数的用法(original)

    一.复制类(cpy) (1)memcpy 函数原型: 用法:可与用于转移数据 (2)memmove 函数原型: 基...

  • memmove 和 memcpy的区别

      在看Category的源码时碰见了两个C语言函数memmove和memcpy,在string.h中我们可以看见...

  • memmove 和 memcpy的区别

    memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,...

  • memmove与memcpy

    我们知道,分类的方法列表是通过memmove和memcpy加到类的方法列表的前面,而同名的分类方法根据文件的编译顺...

  • memmove和memcpy

    内存移动void *memmove(void *str1, const void *str2, size_t n)...

网友评论

    本文标题:memset,memcpy,memmove函数

    本文链接:https://www.haomeiwen.com/subject/snbqjftx.html