C++の構造体の二重ポインタによる二重配列について
構造体の二重ポインタを二重配列のように使い、x軸y軸行列のように並んでいるようなイメージのデータを作成したいと思っています。
以下のように書いたところ、ST[0][0].a = 111;としようとしたときに
System.AccessViolationException: '保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。'
というエラーが出たので、メモリを確保する必要があるのかと思い、
ST = new StructTest*[10];
というようにするのかなと思って模索していますが同様のエラーになります。
どのようにメモリ確保すればよろしいでしょうか。
lang
1public value struct StructTest { 2public: 3 int a; 4 int b; 5 int c; 6}; 7 8VOID TEST() 9{ 10 StructTest ** ST; 11 ST = new StructTest*[10]; 12 for (int i = 1; i <= 10; i++) { 13 for (int j = 1; j <= 10; j++) 14 { 15 int x = (i * 100) + (j * 10); 16 ST[i][j].a = x + 1; 17 ST[i][j].b = x + 2; 18 ST[i][j].c = x + 3; 19 } 20 } 21}
環境はWin10のVS2017でC++CLIです。
追記
すみません、上記のループ部分は試行錯誤中のテスト記述のままでした。
実際には以下のように書いています。
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/17 02:41
2017/10/17 02:43
2017/10/18 05:28 編集