求助:vb.net二维数组如何转为C++/CLI二维数组? 描述:一维及多维数组的内置

求助:vb.net二维数组如何转为C++/CLI二维数组?
描述:一维及多维数组的内置类型(如int)转换到CLI没有问题,可是给Point类型数组转换就成问题...
vb.net
Dim vs(3,3) As System.Drawing.Point
For i As SByte = 0 To 3
For ic As SByte = 0 To 3
vs(i, ic).X = i + 10
vs(i, ic).Y = CInt(Rnd() * 100)
'X,Y应用于Chart控件的点阵数组
lanChart.Series(ic).Points.AddXY(vs(i, ic).X, vs(i, ic).Y)
Next
Next
注意:不需要C/C++非托管原生代码,只要CLI托管类数组..
谢谢
可能上面我的问题没描述清楚,数组间转换我是知道怎么转换的,但我面临真正的问题在于Point数组:vb.net中能正确运行得很好,而对应C++/CLI代码如下://CLR编译
int i,ic;
Random^ rnd = gcnew Random;
int ivs = rnd->Next(100);
array<System::Drawing::Point^, 2>^ vs = gcnew array<System::Drawing::Point^, 2>(4, 4);
for (i = 0; i <4; i++) {
for (ic = 0; ic <4; ic++) {
vs[i,ic]->X = i + 10;
vs[i,ic]->Y =ivs;
lanChart->Series[ic]->Points->AddXY(vs[i, ic]->X, vs[i, ic]->Y);
}
}
我的根本问题就是C++/CLI能在Release下编译通过,却无法正确运行这段代码,数组传达后赋值就出现溢出异常……C++/CLI编译器的漏洞?我的代码错了吗??求指点

先定义一个动态数组
dim a() as integer

再定义二维数组
m=inputbox("二维数组有几行")
n=inputbox("二维数组有几列")
redim a(1 to m, 1 to n)
然后赋值

转变为一维数组:
redim a(m*n) as integer
for j = 1 to m
for k= 1 to n
a((j-1)*n+k) = a(j, k)
next k
next j

不确定对不对……你试一下看看是不是可以帮到你追问

可能我的描述不够清楚,请再看看我问题补充,

温馨提示:答案为网友推荐,仅供参考
相似回答