memcpy函数使用原则及方法,案例,易错点,,自己制作memcpy

简介: memcpy函数使用原则及方法,案例,易错点,,自己制作memcpy
//内存函数
//memcpy---内存拷贝函数,不分类型,但是不能处理重叠部分     memmove函数可以处理内存重叠的部分   
//void*memcpy(void*被放置的地方,const void*需要放置的函数,元素个数*字节)
//#include<stdio.h>
//自制函数实现部分
//void* my_memcpy(void* dest, void* src, size_t num)//希望返回dest的地址,所以用void*
//{
//    void* ret = dest;//因为后面的dest已经被改变了
//    assert(dest && src);//断言,使之不能为*NULL,需要头文件 #include<assert.h>
//        while (num--)//循环几次,搞定几个字节
//        {
//            *(char*)dest = *(char*) src;//void*dest的指针不能直接进行dest++运算, char*最小
//            dest=(char*)dest+1;//不能自加,因为const锁定
//            src=(char*)src+1;
//        }
//        return ret;
//}
//int main()
//{
//    int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
//    int arr2[20] = { 0 };
//    //目的:将arr1放在arr2中,不能用strcpy,因为
//    //strcpy函数类型是char*strcpy(char*dest,const char*src)是char型,不是int型
//    memcpy(arr2, arr1, 20);//5个元素*4个字节
//
//    my_memcpy(arr2, arr1, 20);//自制my_memcpy实现memcpy
//    return 0;
//}


相关文章
|
5月前
|
编译器 C语言
详解sizeof()和strlen()的细节及用法
详解sizeof()和strlen()的细节及用法
37 1
详解sizeof()和strlen()的细节及用法
|
6月前
|
存储 安全 C语言
不只是printf:探究C/C++语言中的可变参数函数
不只是printf:探究C/C++语言中的可变参数函数
142 0
|
存储 C语言
【C语言】memcpy , memset等内存操作函数使用方法与注意事项
【C语言】memcpy , memset等内存操作函数使用方法与注意事项
186 0
|
6月前
|
C语言
C语言第五十六弹---模拟使用memcpy函数
C语言第五十六弹---模拟使用memcpy函数
|
6月前
|
监控 Java Unix
日常知识点之内存泄露定位手段(c语言hook malloc相关方式)
日常知识点之内存泄露定位手段(c语言hook malloc相关方式)
134 0
|
算法 程序员 C语言
【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)
回调函数为C语言重要知识点,以函数指针为主要知识;下面介绍回调函数的定义、回调函数的库函数举例即库函数模拟实现。
52 0
【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)
|
安全 编译器 C语言
const函数和assert函数:提高代码质量的利器
const函数和assert函数:提高代码质量的利器
47 0
|
存储 Go
go语言中空struct{}的用途
在Go语言中,空的 `struct{}` 类型通常被用作占位符或者信号。它不占用任何内存空间,也不包含任何字段,因此它被用来表示一个没有任何数据的结构体。
94 2
模拟实现库函数strcpy,对strcpy的进一步理解(深刻理解重叠问题,防止内存与源重叠)
模拟实现库函数strcpy,对strcpy的进一步理解(深刻理解重叠问题,防止内存与源重叠)
|
C语言
【C语言】深度讲解 atoi函数 使用方法与模拟实现
【C语言】深度讲解 atoi函数 使用方法与模拟实现
212 0