加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
3-26.c 1.11 KB
一键复制 编辑 原始数据 按行查看 历史
王振宇 提交于 2022-03-26 17:46 . 博客
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
//typedef struct {
// int a;
// char b;
// short c;
// short d;
//}AA_t;
//int main()
//{
// printf("%d", sizeof(AA_t));
// return 0;
//}
//void* memcpy(void* destination, const void* source, size_t num);
////
//void* MyMemcpy(void* s1, const void* s2, size_t num)
//{
// assert(s1 && s2);
// void* p = s1;
// while (num--)
// {
// *(char*)s1 = *(char*)s2;
// s1 = (char*)s1 + 1;
// s2 = (char*)s2 + 1;
// }
// return p;
//}
//
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int arr1[5] = { 0 };
// MyMemcpy(arr+2, arr, 20);
// /*memcpy(arr + 2, arr, 20);*/
// return 0;
//}
//
//void* memmove(void* destination, const void* source, size_t num);
void* MyMemmove(void* s1, const void* s2, size_t num)
{
assert(s1 && s2);
void* p = s1;
if (s2 < s1)
while (num--)
{
*((char*)s1 + num) = *((char*)s2 + num);
}
else
while (num--)
{
(char*)s1 = (char*)s2;
s1 = (char*)s1 + 1;
s2 = (char*)s2 + 1;
}
return p;
}
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
MyMemmove(arr + 2, arr, 20);
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化