C#
1unsafe public struct A 2 { 3 public int ID; 4 public B B_Data; 5 } 6 7unsafe public struct B 8 { 9 public int num; 10 public void* value; 11 }
上記の構造体があるとします。これらの変数に値とアドレスを代入したいのですが、領域確保してそこにアドレスを代入の方法がわかりません。
C#
1 2int a = 7; 3 4A* dataList = stackalloc A[sizeof(A) * 5]; 5B[] DataValue = new DataValue[5]; 6for (int i = 0; i < 5; i++) 7 { 8 dataList[i].B_Data = DataValue[i]; 9 dataList[i].ID = i; 10 dataList[i].B_Data.num = 10 + i; 11 dataList[i].B_Data.Value = (void*)&a; 12 }
これでやると正しく領域確保が出来ていないため上手くできません。
どのようにしてやれば良いのでしょうか?
よろしくお願いいたします。
C# のタグが付いてますが C または C++ の間違いですか? であればタグを訂正願います。C# で間違いないということなら何故ポインタを使っている(unsafe コードを使っている)のでしょう? あと、DataValue が定義不明です。