社区
新手乐园
帖子详情
C下内存拷贝问题
starysky
2005-04-11 07:24:28
自己对C还是不熟悉 碰到别人面试的一题 有些想不清楚...特请教各位
void memorycpy(void *.dest,const void *src,int length)
{
}
题目说得是在X86 CPU下进行内存函数拷贝 需要考虑内存重叠 和 拷贝效率
...全文
204
8
打赏
收藏
C下内存拷贝问题
自己对C还是不熟悉 碰到别人面试的一题 有些想不清楚...特请教各位 void memorycpy(void *.dest,const void *src,int length) { } 题目说得是在X86 CPU下进行内存函数拷贝 需要考虑内存重叠 和 拷贝效率
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
starysky
2005-04-11
打赏
举报
回复
那除开效率 就算解决了
谢谢各位
结贴
pcboyxhy
2005-04-11
打赏
举报
回复
能啊
*(dest+i) = *(src+i);
这样改变的不是指针的值
而是指针所指空间的值
starysky
2005-04-11
打赏
举报
回复
*(dest+i) = *(src+i);
指针能这样附值么?
neophyte111
2005-04-11
打赏
举报
回复
最最死板不讲效率是
void memorycpy(void *dest,const void *src,int length)
{
if ( src+length <= dest)
{
for (i=0; i<length; i++)
*(dest+i) = *(src+i);
}
else
{
for (i=0; i<src+length-dest; i++)
*(2*dest-src+i) = *(dest+i);
for (i=0; i<dest-src; i++)
*(dest+i) = *(src+i);
}
return;
}
starysky
2005-04-11
打赏
举报
回复
memmv 这是什么不太懂....
先暂时不用考虑内存重叠
FlyWithJo
2005-04-11
打赏
举报
回复
内存交叉?
听起来很麻烦哦,要是可以用memmv就好了,呵呵
starysky
2005-04-11
打赏
举报
回复
能不能大概写个程序 我有点不太清楚
题目其实 也是说最好能考虑 内存重叠 和拷贝效率
当然麻烦可以先不写
谢谢
pcboyxhy
2005-04-11
打赏
举报
回复
下面仅仅是构思
未必可行
如果length>=4
用两个整型指针来实现访问数据,
复制前面4n字节
剩下的用 char *指针访问拷贝结束
考虑效率的话恐怕需要研究高质量汇编语言程序设计了
C语言中memcpy 函数的用法详解
C语言中memcpy 函数的用法详解 memcpy(
内存
拷贝
函数) c和c++使用的
内存
拷贝
函数,memcpy函数的功能是从源src所指的
内存
地址的起始位置开始
拷贝
n个字节到目标dest所指的
内存
地址的起始位置中。 void* memcpy(void* destination, const void* source, size_t num); void* dest 目标
内存
const void* src 源
内存
size_t num 字节个数 库中实现的memcpy函数 struct { char name[40]; int age; } person, person_cop
C/C++ 浅
拷贝
和深
拷贝
的实例详解
C/C++ 浅
拷贝
和深
拷贝
的实例详解 深
拷贝
是指
拷贝
对象的具体内容,而
内存
地址是自主分配的,
拷贝
结束之后,两个对象虽然存的值是相同的,但是
内存
地址不一样,两个对象也互不影响,互不干涉。 浅
拷贝
就是对
内存
地址的复制,让目标对象指针和源对象指向同一片
内存
空间. 浅
拷贝
只是对对象的简单
拷贝
,让几个对象共用一片
内存
,当
内存
销毁的时候,指向这片
内存
的几个指针需要重新定义才可以使用,要不然会成为野指针。 在iOS开发中也会涉及到浅
拷贝
和深
拷贝
,简而言之: 浅
拷贝
:
拷贝
指针变量的值 深
拷贝
:
拷贝
指针所指向
内存
空间 不过这次我们通过C语言来实现: //声明一个结构体 typedef struct P
iOS开发教程之OC语言
C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objective-C语言当中的一些要点,类的封装、基本数据结构(NSString、NSData)、继承、
内存
管理(retain点语法、MyArray、...
C++浅
拷贝
与深
拷贝
及引用计数分析
C++浅
拷贝
与深
拷贝
及引用计数分析 在C++开发中,经常遇到的一个
问题
就是与指针相关的
内存
管理
问题
,稍有不慎,就会造成
内存
泄露、
内存
破坏等严重的
问题
。不像Java一样,没有指针这个概念,所以也就不必担心与指针相关的一系列
问题
,但C++不同,从C语言沿袭下来的指针是其一大特点,我们常常要使用new/delete来动态管理
内存
,那么
问题
来了,特别是伴随着C++的继承机制,如野指针、无效指针使用、
内存
泄露、double free、堆碎片等等,这些
问题
就像地雷一样,一不小心就会踩那么几颗。 先来谈一下C++类中常见的浅
拷贝
问题
,以及由此引发的double free。什么是浅
拷贝
?当类中的成员变量包括指
memcpy的实现
内存
拷贝
的实现函数。此函数完全可以自己用,如果需要可以自己改进。
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章