質問編集履歴

1

質問内容の詳細を追記

2020/05/09 03:01

投稿

darudaru
darudaru

スコア36

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,65 @@
47
47
  ```
48
48
 
49
49
  例えば、こういう場合です。
50
+
51
+
52
+
53
+ ### 追記
54
+
55
+
56
+
57
+ 具体的な状況が伝わりにくかったのでコード例を追記しました。
58
+
59
+ 配列のサイズを取得したいというよりも、
60
+
61
+ あるサイズ(ここでは列挙体のサイズ)に配列のサイズを紐づけていて
62
+
63
+ そのサイズが変更された場合に何かしら気付けるような方法があるのかを知りたいです。
64
+
65
+
66
+
67
+ ```C
68
+
69
+ typedef enum{
70
+
71
+ a1 = 0,
72
+
73
+ a2,
74
+
75
+ a3,
76
+
77
+ a_NUM, //この列挙体の要素数
78
+
79
+ }eXXX;
80
+
81
+
82
+
83
+ const int data_array[a_NUM] = { 1, 2, 3 };
84
+
85
+
86
+
87
+ int main(void)
88
+
89
+ {
90
+
91
+ for (int i = 0; i < a_NUM; i++)
92
+
93
+ {
94
+
95
+ //data_array[i]を使った処理
96
+
97
+ }
98
+
99
+
100
+
101
+ return 0;
102
+
103
+ }
104
+
105
+ ```
106
+
107
+ 上記のコードで、
108
+
109
+ enumに'a4'が追加された時に、
110
+
111
+ データ配列的には想定されていない'data_array[3]'にアクセスされることが危険だと感じました。