回答編集履歴

6

誤記修正

2019/04/26 14:53

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -1,6 +1,6 @@
1
1
  - このforループ1回も回らないのでは?
2
2
 
3
- iの初期値=0、終了条件 iが0より大きい
3
+ iの初期値=0、~~終了条件~~継続条件 iが0より大きい
4
4
 
5
5
 
6
6
 

5

誤記修正

2019/04/26 14:53

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
80
80
 
81
- (*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
81
+ *(lv + i) = (struct lvlv*)malloc(sizeof(struct lvlv));
82
82
 
83
83
  i++;
84
84
 
@@ -100,6 +100,8 @@
100
100
 
101
101
  }
102
102
 
103
+ free(*(lv + j));
104
+
103
105
  free(lv);
104
106
 
105
107
  ```

4

誤記修正...orz

2019/04/26 10:52

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -90,13 +90,13 @@
90
90
 
91
91
  for(j=0; j<i; j++) {
92
92
 
93
- printf("%f ", (*(lv + i))->time);
93
+ printf("%f ", (*(lv + j))->time);
94
94
 
95
- printf("%f\n", (*(lv + i))->score);
95
+ printf("%f\n", (*(lv + j))->score);
96
96
 
97
97
 
98
98
 
99
- free(*(lv + i));
99
+ free(*(lv + j));
100
100
 
101
101
  }
102
102
 

3

誤記修正

2019/04/26 10:48

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  for(i=0;i>0;i++){
10
10
 
11
- fscanf(fp,"%f %f",lv[i].time,lv[i].score);
11
+ fscanf(fp,"%f %f", lv[i].time,lv[i].score);
12
12
 
13
13
  }
14
14
 
@@ -74,7 +74,7 @@
74
74
 
75
75
 
76
76
 
77
- while(fscanf(fp,"%f %f", (*lv)->time, (*lv)->score) > 1){
77
+ while(fscanf(fp,"%f %f", &((*lv)->time), &((*lv)->score)) > 1){
78
78
 
79
79
  lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
80
80
 

2

誤記修正と追記

2019/04/26 10:46

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ```
7
+ ```C
8
8
 
9
9
  for(i=0;i>0;i++){
10
10
 
@@ -16,11 +16,11 @@
16
16
 
17
17
 
18
18
 
19
- - メモリ壊してますよ
19
+ - 確保していない範囲のメモリを参照していますよ ~~メモリ壊してますよ~~
20
20
 
21
21
 
22
22
 
23
- ```
23
+ ```C
24
24
 
25
25
  struct lvlv *lv;
26
26
 
@@ -45,3 +45,61 @@
45
45
 
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ ----
52
+
53
+
54
+
55
+ 愚直に書くとこんな感じ?
56
+
57
+ ※ゴリゴリのC言語書くの何年振りかわからないので間違ってる可能性あり。
58
+
59
+
60
+
61
+ ```C
62
+
63
+ //略
64
+
65
+ struct lvlv **lv;
66
+
67
+ //略
68
+
69
+ i=0;
70
+
71
+ lv = (struct lvlv**)malloc(sizeof(struct lvlv *));
72
+
73
+ (*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
74
+
75
+
76
+
77
+ while(fscanf(fp,"%f %f", (*lv)->time, (*lv)->score) > 1){
78
+
79
+ lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
80
+
81
+ (*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
82
+
83
+ i++;
84
+
85
+ }
86
+
87
+
88
+
89
+ int j=0;
90
+
91
+ for(j=0; j<i; j++) {
92
+
93
+ printf("%f ", (*(lv + i))->time);
94
+
95
+ printf("%f\n", (*(lv + i))->score);
96
+
97
+
98
+
99
+ free(*(lv + i));
100
+
101
+ }
102
+
103
+ free(lv);
104
+
105
+ ```

1

誤記修正

2019/04/26 10:44

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -1,4 +1,4 @@
1
- 1. このforループ1回も回らないのでは?
1
+ - このforループ1回も回らないのでは?
2
2
 
3
3
  iの初期値=0、終了条件 iが0より大きい
4
4
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 2. メモリ壊してますよ
19
+ - メモリ壊してますよ
20
20
 
21
21
 
22
22