質問編集履歴

5

imageをpimageに更新、呼び出し時のvoid削除、グローバル変数pimageの追加

2018/07/17 12:41

投稿

ain4425
ain4425

スコア19

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  //メモリ確保
76
76
 
77
- memory(void);
77
+ memory();
78
78
 
79
79
 
80
80
 
@@ -206,12 +206,18 @@
206
206
 
207
207
 
208
208
 
209
+ char pimage;
210
+
211
+
212
+
209
213
  typedef unsigned char (*pimage_type)[MAX_IMAGESIZE][MAX_IMAGESIZE][3];
210
214
 
211
215
  int width[MAX_NUM_OF_IMAGES],height[MAX_NUM_OF_IMAGES];
212
216
 
213
217
 
214
218
 
219
+
220
+
215
221
  void memory(void);
216
222
 
217
223
  void load_color_image( int n, int no, int set );
@@ -372,7 +378,7 @@
372
378
 
373
379
  for(col=0;col<3;col++){
374
380
 
375
- image[n][x][y][col] = (unsigned char)fgetc( fp );
381
+ pimage[n][x][y][col] = (unsigned char)fgetc( fp );
376
382
 
377
383
  }
378
384
 
@@ -432,7 +438,7 @@
432
438
 
433
439
  for(col=0;col<3;col++){
434
440
 
435
- fputc( image[n][x][y][col], fp );
441
+ fputc( pimage[n][x][y][col], fp );
436
442
 
437
443
  }
438
444
 
@@ -466,7 +472,7 @@
466
472
 
467
473
  for(col=0;col<3;col++){
468
474
 
469
- image[n2][x][y][col] = image[n1][x][y][col];
475
+ pimage[n2][x][y][col] = pimage[n1][x][y][col];
470
476
 
471
477
  }
472
478
 
@@ -490,11 +496,11 @@
490
496
 
491
497
  for(x=0;x<width[n];x++){
492
498
 
493
- if (red != -1) image[n][x][y][0] = red;
499
+ if (red != -1) pimage[n][x][y][0] = red;
494
-
500
+
495
- if (green != -1) image[n][x][y][1] = green;
501
+ if (green != -1) pimage[n][x][y][1] = green;
496
-
502
+
497
- if (blue != -1) image[n][x][y][2] = blue;
503
+ if (blue != -1) pimage[n][x][y][2] = blue;
498
504
 
499
505
  }
500
506
 

4

mallocを含む関数名をmemoryに変更、free関数の書き直し

2018/07/17 12:41

投稿

ain4425
ain4425

スコア19

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  //メモリ確保
76
76
 
77
- malloc();
77
+ memory(void);
78
78
 
79
79
 
80
80
 
@@ -98,7 +98,7 @@
98
98
 
99
99
  //メモリの開放
100
100
 
101
- free();
101
+ free(pimage);
102
102
 
103
103
  return 0;
104
104
 
@@ -212,9 +212,7 @@
212
212
 
213
213
 
214
214
 
215
- void malloc(void);
215
+ void memory(void);
216
-
217
- void free(void);
218
216
 
219
217
  void load_color_image( int n, int no, int set );
220
218
 
@@ -226,7 +224,7 @@
226
224
 
227
225
 
228
226
 
229
- void malloc(void){
227
+ void memory(void){
230
228
 
231
229
  pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGES * MAX_IMAGESIZE * MAX_IMAGESIZE * 3);
232
230
 
@@ -234,14 +232,6 @@
234
232
 
235
233
 
236
234
 
237
- void free(void){
238
-
239
- free(pimage);
240
-
241
- }
242
-
243
-
244
-
245
235
  void load_color_image( int n, int no, int set ){
246
236
 
247
237
 
@@ -512,8 +502,6 @@
512
502
 
513
503
  }
514
504
 
515
-
516
-
517
505
  ```
518
506
 
519
507
 

3

malloc()とfree()の実装

2018/07/17 11:38

投稿

ain4425
ain4425

スコア19

test CHANGED
File without changes
test CHANGED
@@ -66,37 +66,41 @@
66
66
 
67
67
  int main(void){
68
68
 
69
- //標準設定パラメータ
69
+ //標準設定パラメータ
70
-
70
+
71
- int set;
71
+ int set;
72
+
73
+
74
+
72
-
75
+ //メモリ確保
76
+
73
-
77
+ malloc();
74
-
78
+
79
+
80
+
75
- //標準設定
81
+ //標準設定
76
-
82
+
77
- set=Setting();
83
+ set=Setting();
78
-
79
-
80
-
84
+
85
+
86
+
81
- //画像読込
87
+ //画像読込
82
-
88
+
83
- ReadImage(set);
89
+ ReadImage(set);
84
-
85
-
86
-
90
+
91
+
92
+
87
- //画像の出力
93
+ //画像の出力
88
-
94
+
89
- SaveImage();
95
+ SaveImage();
90
-
91
-
92
-
96
+
97
+
98
+
93
- //メモリの開放
99
+ //メモリの開放
94
-
100
+
95
- free(pimage);
101
+ free();
96
-
97
-
98
-
102
+
99
- return 0;
103
+ return 0;
100
104
 
101
105
  }
102
106
 
@@ -106,17 +110,17 @@
106
110
 
107
111
  int Setting(void){
108
112
 
109
- int set_flag;
113
+ int set_flag;
110
-
114
+
111
- printf("標準設定→1\n");
115
+ printf("標準設定→1\n");
112
-
116
+
113
- printf("詳細設定→0\n");
117
+ printf("詳細設定→0\n");
114
-
118
+
115
- scanf("%d",&set_flag);
119
+ scanf("%d",&set_flag);
116
-
117
-
118
-
120
+
121
+
122
+
119
- return set_flag;
123
+ return set_flag;
120
124
 
121
125
  }
122
126
 
@@ -130,19 +134,19 @@
130
134
 
131
135
  void ReadImage(set){
132
136
 
133
-
134
-
137
+
138
+
135
- load_color_image(0,1,set);
139
+ load_color_image(0,1,set);
136
-
140
+
137
- load_color_image(1,2,set);
141
+ load_color_image(1,2,set);
138
-
142
+
139
- load_color_image(2,3,set);
143
+ load_color_image(2,3,set);
140
-
144
+
141
- load_color_image(3,4,set);
145
+ load_color_image(3,4,set);
142
-
146
+
143
- load_color_image(4,5,set);
147
+ load_color_image(4,5,set);
144
-
145
-
148
+
149
+
146
150
 
147
151
  }
148
152
 
@@ -152,13 +156,13 @@
152
156
 
153
157
  void SaveImage(void){
154
158
 
155
- save_color_image(0,"");
159
+ save_color_image(0,"");
156
-
160
+
157
- save_color_image(1,"");
161
+ save_color_image(1,"");
158
-
162
+
159
- save_color_image(3,"");
163
+ save_color_image(3,"");
160
-
164
+
161
- save_color_image(4,"");
165
+ save_color_image(4,"");
162
166
 
163
167
  }
164
168
 
@@ -202,24 +206,16 @@
202
206
 
203
207
 
204
208
 
205
- //以下訂正前
206
-
207
- //unsigned char image[MAX_NUM_OF_IMAGES][MAX_IMAGESIZE][MAX_IMAGESIZE][3];
208
-
209
-
210
-
211
- //以下訂正後
212
-
213
209
  typedef unsigned char (*pimage_type)[MAX_IMAGESIZE][MAX_IMAGESIZE][3];
214
210
 
215
- pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGES * MAX_IMAGESIZE * MAX_IMAGESIZE * 3);
216
-
217
-
218
-
219
211
  int width[MAX_NUM_OF_IMAGES],height[MAX_NUM_OF_IMAGES];
220
212
 
221
213
 
222
214
 
215
+ void malloc(void);
216
+
217
+ void free(void);
218
+
223
219
  void load_color_image( int n, int no, int set );
224
220
 
225
221
  void save_color_image( int n, char name[] );
@@ -230,9 +226,25 @@
230
226
 
231
227
 
232
228
 
229
+ void malloc(void){
230
+
231
+ pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGES * MAX_IMAGESIZE * MAX_IMAGESIZE * 3);
232
+
233
+ }
234
+
235
+
236
+
237
+ void free(void){
238
+
239
+ free(pimage);
240
+
241
+ }
242
+
243
+
244
+
233
245
  void load_color_image( int n, int no, int set ){
234
246
 
235
-
247
+
236
248
 
237
249
  char fname[MAX_FILENAME];
238
250
 
@@ -242,11 +254,11 @@
242
254
 
243
255
  int max_gray=0,x,y,col;
244
256
 
245
-
257
+
246
258
 
247
259
  if( no==1 && set==1){
248
260
 
249
- printf("INPUT FILE : white1.ppm\n");
261
+ printf("INPUT FILE : white1.ppm\n");
250
262
 
251
263
  strcpy(fname,"white1.ppm");
252
264
 
@@ -254,7 +266,7 @@
254
266
 
255
267
  else if( no==2 && set==1){
256
268
 
257
- printf("INPUT FILE : white2.ppm\n");
269
+ printf("INPUT FILE : white2.ppm\n");
258
270
 
259
271
  strcpy(fname,"white2.ppm");
260
272
 
@@ -262,7 +274,7 @@
262
274
 
263
275
  else if( no==3 && set==1){
264
276
 
265
- printf("INPUT FILE : white3.ppm\n");
277
+ printf("INPUT FILE : white3.ppm\n");
266
278
 
267
279
  strcpy(fname,"white3.ppm");
268
280
 
@@ -270,7 +282,7 @@
270
282
 
271
283
  else if( no==4 && set==1){
272
284
 
273
- printf("INPUT FILE : white4.ppm\n");
285
+ printf("INPUT FILE : white4.ppm\n");
274
286
 
275
287
  strcpy(fname,"white4.ppm");
276
288
 
@@ -278,7 +290,7 @@
278
290
 
279
291
  else if( no==5 && set==1){
280
292
 
281
- printf("INPUT FILE : white5.ppm\n");
293
+ printf("INPUT FILE : white5.ppm\n");
282
294
 
283
295
  strcpy(fname,"white5.ppm");
284
296
 
@@ -306,7 +318,7 @@
306
318
 
307
319
  if ( buffer[0]!='P' || buffer[1]!='6' ){
308
320
 
309
- printf("FILE TIPE WRONG!\n");
321
+ printf("FILE TIPE WRONG!\n");
310
322
 
311
323
  exit(1);
312
324
 
@@ -328,7 +340,7 @@
328
340
 
329
341
  }
330
342
 
331
-
343
+
332
344
 
333
345
  while ( max_gray == 0 ){
334
346
 
@@ -344,7 +356,7 @@
344
356
 
345
357
  printf("----------------------------\n");
346
358
 
347
- printf("WIDTH :%d\n",width[n]);
359
+ printf("WIDTH :%d\n",width[n]);
348
360
 
349
361
  printf("HEIGHT :%d\n",height[n]);
350
362
 
@@ -370,8 +382,6 @@
370
382
 
371
383
  for(col=0;col<3;col++){
372
384
 
373
-
374
-
375
385
  image[n][x][y][col] = (unsigned char)fgetc( fp );
376
386
 
377
387
  }
@@ -382,7 +392,7 @@
382
392
 
383
393
  printf("COMPLETE! ---> image[%d]\n",n);
384
394
 
385
- printf("----------------------------\n");
395
+ printf("----------------------------\n");
386
396
 
387
397
  fclose(fp);
388
398
 
@@ -424,7 +434,7 @@
424
434
 
425
435
  fprintf( fp, "%d\n", MAX_BRIGHTNESS );
426
436
 
427
-
437
+
428
438
 
429
439
  for(y=0;y<height[n];y++){
430
440
 
@@ -454,7 +464,7 @@
454
464
 
455
465
  int x,y,col;
456
466
 
457
-
467
+
458
468
 
459
469
  width[n2] = width[n1];
460
470
 

2

image.cにfreeの追加、ヘッダファイルの綴りミスの訂正

2018/07/17 11:13

投稿

ain4425
ain4425

スコア19

test CHANGED
File without changes
test CHANGED
@@ -90,6 +90,12 @@
90
90
 
91
91
 
92
92
 
93
+ //メモリの開放
94
+
95
+ free(pimage);
96
+
97
+
98
+
93
99
  return 0;
94
100
 
95
101
  }
@@ -204,9 +210,9 @@
204
210
 
205
211
  //以下訂正後
206
212
 
207
- typedef unsigned char (*pimage_type)[MAX_IMAGEIZE][MAX_IMAGEIZE][3];
213
+ typedef unsigned char (*pimage_type)[MAX_IMAGESIZE][MAX_IMAGESIZE][3];
208
-
214
+
209
- pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGE * MAX_IMAGEIZE * MAX_IMAGEIZE * 3);
215
+ pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGES * MAX_IMAGESIZE * MAX_IMAGESIZE * 3);
210
216
 
211
217
 
212
218
 

1

ヘッダファイルの変数定義部分を書き換えました

2018/07/17 10:39

投稿

ain4425
ain4425

スコア19

test CHANGED
File without changes
test CHANGED
@@ -196,7 +196,19 @@
196
196
 
197
197
 
198
198
 
199
+ //以下訂正前
200
+
199
- unsigned char image[MAX_NUM_OF_IMAGES][MAX_IMAGESIZE][MAX_IMAGESIZE][3];
201
+ //unsigned char image[MAX_NUM_OF_IMAGES][MAX_IMAGESIZE][MAX_IMAGESIZE][3];
202
+
203
+
204
+
205
+ //以下訂正後
206
+
207
+ typedef unsigned char (*pimage_type)[MAX_IMAGEIZE][MAX_IMAGEIZE][3];
208
+
209
+ pimage_type pimage = (pimage_type)malloc(MAX_NUM_OF_IMAGE * MAX_IMAGEIZE * MAX_IMAGEIZE * 3);
210
+
211
+
200
212
 
201
213
  int width[MAX_NUM_OF_IMAGES],height[MAX_NUM_OF_IMAGES];
202
214