質問編集履歴

1

違うソースコードで似た動作を再現できるか追記

2016/06/28 13:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -112,6 +112,10 @@
112
112
 
113
113
  xy=NULL;
114
114
 
115
+
116
+
117
+ return 0;
118
+
115
119
 
116
120
 
117
121
 
@@ -163,3 +167,95 @@
163
167
  実行時エラーは無し。
164
168
 
165
169
  webで公開されている情報を調べましたが確保したメモリの二重開放についてぐらいしか見つけられませんでした。
170
+
171
+ ###解決後追記
172
+
173
+ ###実験 配列宣言や動的確保をしなくても基準となるアドレスを渡せば再現できるか?
174
+
175
+ ###実験結果
176
+
177
+ 再現できた。
178
+
179
+ ###実験 ソースコード
180
+
181
+ ```c
182
+
183
+ #include <stdio.h>
184
+
185
+ #include <stdlib.h>
186
+
187
+
188
+
189
+ typedef struct _xy{
190
+
191
+ int x;
192
+
193
+ int y;
194
+
195
+ }xy_t;
196
+
197
+
198
+
199
+ int main(void){
200
+
201
+
202
+
203
+ size_t m = 10;
204
+
205
+
206
+
207
+ xy_t origin;
208
+
209
+ xy_t *xy = &origin;
210
+
211
+
212
+
213
+ for(size_t i=0;i<m;i++){
214
+
215
+ xy[i].x = i;
216
+
217
+ xy[i].y = i * 2;
218
+
219
+ }
220
+
221
+
222
+
223
+ for(size_t i=0;i<m;i++){
224
+
225
+ printf("%d %d\n",xy[i].x,xy[i].y);
226
+
227
+ }
228
+
229
+
230
+
231
+ return 0;
232
+
233
+
234
+
235
+ }
236
+
237
+
238
+
239
+ ```
240
+
241
+ ###実験 出力
242
+
243
+ 0 0
244
+
245
+ 1 2
246
+
247
+ 2 4
248
+
249
+ 3 6
250
+
251
+ 4 8
252
+
253
+ 5 10
254
+
255
+ 6 12
256
+
257
+ 7 14
258
+
259
+ 8 16
260
+
261
+ 9 18