teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/08/07 04:34

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -1,4 +1,35 @@
1
1
  `struct pb{ ouble x,y,z,bx,by,bz; };` を main の中に置かず、
2
2
  `void kakunou(vector<vector<struct pb>> &alldata){` の前に置いてください。
3
3
 
4
- *alldata ではなく、&alldata であることも忘れないでください。
4
+ *alldata ではなく、&alldata であることも忘れないでください。
5
+
6
+ **追記**
7
+ 参照ではなく、アドレスを渡したいのなら、次のように書かないといけなくなります。
8
+ ```C++
9
+ #include <iostream>
10
+ #include <vector>
11
+ using namespace std;
12
+
13
+ struct pb {
14
+ double x, y, z, bx, by, bz;
15
+ };
16
+
17
+ void kakunou(vector<vector<struct pb>> *alldata)
18
+ {
19
+ (*alldata)[0][0].x = 1;
20
+ (*alldata)[0][0].y = 1;
21
+ (*alldata)[0][0].z = 1;
22
+ (*alldata)[0][0].bx = 1;
23
+ (*alldata)[0][0].by = 1;
24
+ (*alldata)[0][0].bz = 1;
25
+ }
26
+
27
+ int main()
28
+ {
29
+ vector<vector<struct pb>>alldata(2,vector<struct pb>(2));
30
+
31
+ kakunou(&alldata); // ★ アドレスを渡す
32
+ cout << alldata[0][0].x << endl;
33
+ return 0;
34
+ }
35
+ ```