简单c之模拟实现mem类函数
来源:互联网 发布:painter2018 mac破解 编辑:程序博客网 时间:2024/04/27 17:23
1.模拟实现memcpy
#include<stdio.h>
#include<assert.h>
void* my_memcpy(void* dest,void* src,int count)
{
char* pdest=(char*) dest;//必须要把目标数组跟原数组强制转化为char*指针,因为count需要一个一个字节拷贝。
char* psrc =(char*) src;
assert(dest!=NULL);
assert(src!=NULL);
while(count)
{
* pdest++=* psrc++;
count--;
}
return dest;
}
int main()
{
int arr[10];
int str[]={1,2,3,4,5,6,7,8,9,0};
my_memcpy(arr,str,8*sizeof(int));
system("pause");
return 0;
}
2.模拟实现memmove
#include<stdio.h>
#include<assert.h>
void* my_memmove(void* dest,void* src,int count)
{
char* pdest=(char*) dest;
char* psrc =(char*) src;
assert(dest!=NULL);
assert(src!=NULL);
if((pdest>=psrc)&&(pdest<=psrc+count))
{
while(count)//从后向前拷贝
{
*(pdest+count-1)=*(psrc+count-1);
count--;
}
}
else
{
while(count)//从前向后拷贝
{
* pdest++=* psrc++;
count--;
}
}
}
int main()
{
int str[]={1,2,3,4,5,6,7,8,9,0};
my_memmove(str+2,str,2*sizeof(int));
system("pause");
return 0;
}
#include<stdio.h>
#include<assert.h>
void* my_memcpy(void* dest,void* src,int count)
{
char* pdest=(char*) dest;//必须要把目标数组跟原数组强制转化为char*指针,因为count需要一个一个字节拷贝。
char* psrc =(char*) src;
assert(dest!=NULL);
assert(src!=NULL);
while(count)
{
* pdest++=* psrc++;
count--;
}
return dest;
}
int main()
{
int arr[10];
int str[]={1,2,3,4,5,6,7,8,9,0};
my_memcpy(arr,str,8*sizeof(int));
system("pause");
return 0;
}
2.模拟实现memmove
#include<stdio.h>
#include<assert.h>
void* my_memmove(void* dest,void* src,int count)
{
char* pdest=(char*) dest;
char* psrc =(char*) src;
assert(dest!=NULL);
assert(src!=NULL);
if((pdest>=psrc)&&(pdest<=psrc+count))
{
while(count)//从后向前拷贝
{
*(pdest+count-1)=*(psrc+count-1);
count--;
}
}
else
{
while(count)//从前向后拷贝
{
* pdest++=* psrc++;
count--;
}
}
}
int main()
{
int str[]={1,2,3,4,5,6,7,8,9,0};
my_memmove(str+2,str,2*sizeof(int));
system("pause");
return 0;
}
0 0
- 简单c之模拟实现mem类函数
- 模拟实现mem函数
- 简单c之模拟实现str类函数
- Mem库函数模拟实现
- c语言 mem类函数源码
- 模拟实现str--以及mem--
- mem类函数
- 简单模拟实现printf函数
- C语言mem.h中的函数介绍
- c 语言之 模拟实现 strcpy 和 strcat 函数
- c语言之模拟实现求子串(strstr)函数
- 常用内存池的实现 mem.c
- C跟C++mem函数的类型及用法
- printf函数的简单模拟实现
- C和指针之字符串简单实现strchr、strcmp函数
- C和指针之函数之实现简单的printf函数(支持%d, %f, %c, %s)
- c 操作函数,所在函数库为string.h、mem.h
- 【C语言】模拟实现库函数srtcpy函数
- 靠自己,二流大学并不差
- 对PX4固件中的mavlink添加自定义数据包_mavgenerate转换工具(exe版)
- 评估指标中IoU/precision/recall/tp/fp/fn/tn的个人理解
- 数组以及程序格式
- 使用Tomcat建立基于主机名的虚拟主机
- 简单c之模拟实现mem类函数
- 如何查看exe或dll调用了什么dll
- [JZOJ3754]【NOI2014】魔法森林
- jvm内存监控工具jconsole配置与内存溢出分析
- 面向对象设计的SOLID原则
- Javascript异步编程
- Android LinearLayout点击变色像Button一样效果
- 2017-3-3 2
- Unity3D学习:井子棋实现