回答編集履歴

2

補足

2020/02/25 11:16

投稿

otn
otn

スコア84655

test CHANGED
@@ -67,3 +67,5 @@
67
67
  }
68
68
 
69
69
  ```
70
+
71
+ もちろん、デバッガで同等のことをやってもいいですが。

1

追記

2020/02/25 11:16

投稿

otn
otn

スコア84655

test CHANGED
@@ -7,3 +7,63 @@
7
7
  motorval = pid(gyro);
8
8
 
9
9
  ```
10
+
11
+ #追記
12
+
13
+ 問題を切り分けるとしたらこんな感じでしょうか。
14
+
15
+ ```C
16
+
17
+ #include <stdio.h>
18
+
19
+ #include <math.h>
20
+
21
+
22
+
23
+ float *pid(float arg);
24
+
25
+
26
+
27
+ int main(void) {
28
+
29
+
30
+
31
+ float gyro= 320;
32
+
33
+ float *motorval = pid(gyro);
34
+
35
+ printf("in main motorval=%p\n",motorval);
36
+
37
+ printf("in main pid(gyro)=%p\n",pid(gyro));
38
+
39
+
40
+
41
+ printf("%f,%f", motorval[0],motorval[1]);
42
+
43
+ return 0;
44
+
45
+ }
46
+
47
+
48
+
49
+ float *pid(float arg) {
50
+
51
+
52
+
53
+ static float motor[2];
54
+
55
+ motor[0] = arg+1.5;
56
+
57
+ motor[1] = arg-1.5;
58
+
59
+
60
+
61
+ printf("in pid motor=%p\n",motor);
62
+
63
+ return motor;
64
+
65
+
66
+
67
+ }
68
+
69
+ ```