質問: 1; のような使い方で という感じで やっていた事を c#で 同じような事をやろうとしても うまくいきません うまくやる方法をどなたかご存知ないでしょうか visual studio 2005行った場合 コンパイルで 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファ フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します となり fixed をつけると 固定サイズ バッファの型は次のうちの 1 つでなければなりません: bool、byte、short、int、long、char、sbyte、ushort、uint、ulong、float または double となってしまいます
回答: c#の勉強のつもりで書いてみましたが、あんまり美しくなかったり: public struct xyz { public struct abc { public int a, b, c; }; public int index; public abc[] _abc; }; class program { static void main( string[] args ) { xyz[] _xyz = new xyz[8]; for ( int i = 0; i < _xyz.length; i++ ) { _xyz[i]._abc = new xyz.abc[32]; } _xyz[0]._abc[3].b = 1; } } c#の構造体は、クラスと違って値型なので、new[]した時点でインスタンス化されるけど、その際、引数なしのコンストラクタを構造体は定義できないので、結局、各要素ごとにインスタンス化しないといけないみたい。 いったん作成したものを捨てるのは忍びないので、代入にしてみてみたけど、中身が露呈しているのがなんとも。