質問編集履歴

1

N==2の場合を追加してコードを組みました。

2022/01/11 07:46

投稿

bldtemporal
bldtemporal

スコア35

test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,45 @@
31
31
  エラー C4703 初期化されていない可能性のあるローカル ポインター変数 'PC7' が使用されています(本番変数名のPC7はPC相当です)
32
32
 
33
33
  ```
34
+
35
+ ・ご指摘がありましたように、下記のように、N=2のケースを入れると、上記C4703のエラーとなります。何か対策がありますでしょうか、(コードは実際に合わせてforにしています。)
36
+
37
+ ```C++
38
+
39
+ /* **** Pointer print **** */
40
+
41
+ #include <cstdio>
42
+
43
+ #include<cstdlib>
44
+
45
+ int main() {
46
+
47
+ int i;
48
+
49
+ for (i = 0; i < 3; i++) {
50
+
51
+ double* PC;
52
+
53
+ int N = 1;
54
+
55
+ if (N == 1) {
56
+
57
+ static double pc[5]{ 1, 0.885, 0.826, 0.794, 0.775 };
58
+
59
+ PC = pc;
60
+
61
+ }else if(N==2) {
62
+
63
+ static double pc[5] = { 1, 0.769, 0.709, 0.671, 0.645 };
64
+
65
+ PC = pc;
66
+
67
+ }
68
+
69
+ if (i = 2) { printf("\n PC[1]=%7.3f, i=%d\n", PC[1],i); }
70
+
71
+ }
72
+
73
+ }
74
+
75
+ ```