有什么办法让不同类数组指向同一个数组?

cfvmario 2013-08-14 02:02:18

int[,] a=new int[4,5];
int[] b=(int[])a; // 当然这样不行,可是不知道怎样才行

就是想让b成为一个int[20]数组,和a共用一块内存
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng2005 2013-08-14
  • 打赏
  • 举报
回复
引用 3 楼 cfvmario 的回复:
[quote=引用 2 楼 wddw1986 的回复:] 要是托管代码和非托管代码都分不清楚我觉得你还是用回c++去吧,为了你自己好,也为了你的老板好。
这是个图像处理的问题。EmguCV图像数据是三维数组,但原始读出来的图像数据是一维数组。内容一样的。 如果用数组复制的话,效率太低了,程序卡的要死。。 可能还是用c++ openCV更合适吧,到处都是指针,随便用。 其实最开始这实验是想用c++做的,老板说现在c++人不好招,最好用c#。。[/quote] 类型安全的代价就是效率,这种事情只能是自己取舍。 多快好省的开发语言还不存在于这个世界上。
cfvmario 2013-08-14
  • 打赏
  • 举报
回复
引用 2 楼 wddw1986 的回复:
要是托管代码和非托管代码都分不清楚我觉得你还是用回c++去吧,为了你自己好,也为了你的老板好。
这是个图像处理的问题。EmguCV图像数据是三维数组,但原始读出来的图像数据是一维数组。内容一样的。 如果用数组复制的话,效率太低了,程序卡的要死。。 可能还是用c++ openCV更合适吧,到处都是指针,随便用。 其实最开始这实验是想用c++做的,老板说现在c++人不好招,最好用c#。。
cheng2005 2013-08-14
  • 打赏
  • 举报
回复
要是托管代码和非托管代码都分不清楚我觉得你还是用回c++去吧,为了你自己好,也为了你的老板好。
cfvmario 2013-08-14
  • 打赏
  • 举报
回复
希望别逼我用回c++。。
int a[4][5];
int *b = (int*)a;
for(int i=0; i<20; i++)
  cout << b[i]; //OK!

110,538

社区成员

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

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

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