2016-05-11 11 views
2

私はC#プロジェクトをC++/CLIプロジェクトに変換しようとしています。私はこのコードに遭遇し、適切なC++/CLI構文を使用していることを確認したかったのです。私はかなり間違っていると確信している、私は次元のサイズを設定するときにパラメータを設定するだけです。空のディメンションサイズを持つC++/CLIでの多次元配列の作成

オリジナルのC#:

public double[][] _ARRAY = new double[num][]; 

C++/CLI:

array<double, 2>^ _ARRAY = gcnew array<double, 2>{ {num}, {} }; 

答えて

3

あなたはC++/CLIで多次元配列を作成する方法です。しかし、C#は実際には多次元配列ではありません。

これら二つは同じです:

/* C# */ public double[][] arrayOfArray; 
/* C++/CLI */ array<array<double>^>^ arrayOfArray; 

ので、これらは次のとおりです。

/* C# */ public double [,] array2D; 
/* C++/CLI */ array<double,2>^ array2D; 

あなたが示すように、実際の2次元配列は、それがでのみ可能ですが、半寸法にすることはできませんギザギザの配列(配列の配列)。ジャグ配列の場合は、C++/CLIは確かに(ちょうどあなたの質問では、C#のコードのように)である

arrayOfArray = gcnew array<array<double>^>(num); 

(最初はnull)の配列を可能にしなければならない配列へのハンドルを管理していました。

関連する問題