C#
1public struct XX 2 { 3 public int[,,] A = new int[10, 9, 4]; 4 public int[] B = new int[3]; 5 public int[,] C = new int[4, 4]; 6 public int[,] D = new int[3, 4]; 7 8 public XX() 9 { 10 } 11 } 12 13XX[] x = new XX[8];
上のコードのように今回書きたい処理が構造体の中で多次元配列を使用してるため、初期化が大変です。初期値はnullになっているので、GetLength()などが使えず困っています。
例えば、初期値0をすべての要素に一括で代入する方法はありますか?あれば教えていただきたいです。
たとえば、int[,] array6 = new int[10, 10]; とやれば、全ての要素にゼロが入りますが、そういうことではない?
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/multidimensional-arrays
あと、Visual Basic 6.0 のタグがついてるのは何故でしょう?
- サイズがそれぞれバラバラなのにユーザーの指示なしでわかるわけがないので、一つ一つ指示する必要があります。
- 複数の多次元配列を構造体のフィールドにするという方法が間違っている可能性があります。ジャグ配列のジャグ配列ならもう少し簡単に初期化できます。
- そもそもそこまで大変ではありません。
memset や ZeroMemory みたいなことがやりたいんでしょうか?
1次元配列なら、それっぽいことは出来ますが、MarshalAsAttribue で多次元配列を指定することは出来そうにないので無理だと思いますよ。

回答1件
あなたの回答
tips
プレビュー