如何将一个指针转换为一个数组?不能存在内存复制

maling 2008-01-14 04:34:20
把一个数组转换为指针很容易做到,那么有如何将一个指针转换为一个数组?不能存在内存复制,会损失性能。
...全文
347 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q_282898034 2008-01-15
  • 打赏
  • 举报
回复
把一个数组转换为指针很容易做到
真的吗?
数组是在托管堆上的,且随着垃圾回收不断变换地址,指针指堆栈可以称得上容易,指托管堆就谈不上容易了,因为要加 fixed() 固定数组,使用指针的代码也要考虑 fixed() 的作用域。我认为是很糟糕很无谓的转换。

反过来转换就更糟糕了,我认为楼主如果知道堆栈和托管堆是怎么一回事,就不会问这个问题了。只有一种情况,楼主期望的才有可能实现,那就是把数组固定,转成指针,这种指针可以再转回数组,没有内存复制。
haiwangstar 2008-01-14
  • 打赏
  • 举报
回复
嗯。我认为要实现这个肯定要复制,因为这个要从非托管内存到托管内存。Array肯定要在托管内存中。
chuxue1342 2008-01-14
  • 打赏
  • 举报
回复
MARK!
vrhero 2008-01-14
  • 打赏
  • 举报
回复
楼上...内存复制已被禁止...明显是砸场子的...
真相重于对错 2008-01-14
  • 打赏
  • 举报
回复
如果是int[] ,float[] , double[] ,等应该容易得到
Marshal.Copy
yilanwuyu123 2008-01-14
  • 打赏
  • 举报
回复
……
ld_thinking 2008-01-14
  • 打赏
  • 举报
回复
mark
haiwangstar 2008-01-14
  • 打赏
  • 举报
回复
数组转换到指针是可以。反向好像真的不大可能。
haiwangstar 2008-01-14
  • 打赏
  • 举报
回复
恐怕不大可能。
vrhero 2008-01-14
  • 打赏
  • 举报
回复
C#本来就没有指针...还不允许内存复制...搞笑的?
sjm2003 2008-01-14
  • 打赏
  • 举报
回复
shengao

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧