memcpy内存拷贝及优化策略图解
来源:互联网 发布:.net select 获取数据 编辑:程序博客网 时间:2024/04/30 10:02
一般内存拷贝与优化
代码实现
#include<iostream>
usingnamespacestd;
//不安全的内存拷贝(当源内存地址与目标内存地址重叠时会产生错误)
void h_memcpy(void*src,void *dst,intsize){
if (src == NULL|| dst == NULL) {
return;
}
const char *s =(char *)src;
char *d = (char*)dst;
while (size--) {
*d++ = *s++;
}
}
//内存移动(安全的内存拷贝,措施为根据源内存地址和目的内存地址不同使用不同的拷贝顺序)
void h_memmove(void*src,void *dst,intsize){
if (src == NULL|| dst == NULL) {
return;
}
const char *s =(char *)src;
char *d = (char*)dst;
if (s > d) {
while (size--) {
*d++ = *s++;
}
}elseif(s < d){ // 正向反向拷贝的目的就是为了避免未移动内存被覆盖
d = d + size -1;
s = s +size - 1;
while (size--) {
*d-- = *s--;
}
}
// s == d, you should do nothing!~
}
int main(intargc,constchar* argv[])
{
char s[] = "12345";
char *p1 = s;
char *p2 = s+2;
printf("%s\n",p1);
printf("%s\n",p2);
h_memcpy(p1, p2, 2);
printf("%s\n",p2);
return 0;
}
- memcpy内存拷贝及优化策略图解
- memcpy内存拷贝的改进与优化
- memcpy如何优化拷贝
- memcpy() -- 拷贝内存内容
- memcpy() -- 拷贝内存内容
- memcpy() -- 拷贝内存内容
- memcpy() -- 拷贝内存内容
- memcpy() -- 拷贝内存内容
- memcpy() -- 拷贝内存内容
- 内存拷贝函数memcpy
- memcpy拷贝内存内容
- 内存拷贝函数memcpy
- memcpy内存拷贝函数
- memcpy内存拷贝的改进与优化 (转)
- 【转】memcpy() -- 拷贝内存内容
- memcpy内存拷贝函数memcpy和字符串拷贝函数strcpy
- memcpy实现及优化
- 常见内存拷贝函数:memcpy()、memmove()、strcpy()的实现及区别
- 话题讨论&征文--谈论大数据时我们在谈什么 获奖名单公布
- 数据库索引的实现原理
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- perl next语句
- com.android.internal.R的位置
- memcpy内存拷贝及优化策略图解
- 广发华福费用投入研发怨天尤人电影
- 指针定义及初始化
- python整理二十七——egg文件制作与安装【仅提供链接地址】
- windows下mingw与codeblock环境下开发mysql
- WM_MENUCHAR消息解决动态菜单快捷键问题
- OOD: 我所理解的SOLID原则
- vc忽高忽低与他人的听人说
- Project'gef.tutorial.step' is missing required library......