回答編集履歴
6
誤記修正
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
- このforループ1回も回らないのでは?
|
2
|
-
iの初期値=0、終了条件 iが0より大きい
|
2
|
+
iの初期値=0、~~終了条件~~継続条件 iが0より大きい
|
3
3
|
|
4
4
|
```C
|
5
5
|
for(i=0;i>0;i++){
|
5
誤記修正
answer
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
while(fscanf(fp,"%f %f", &((*lv)->time), &((*lv)->score)) > 1){
|
40
40
|
lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
|
41
|
-
|
41
|
+
*(lv + i) = (struct lvlv*)malloc(sizeof(struct lvlv));
|
42
42
|
i++;
|
43
43
|
}
|
44
44
|
|
@@ -49,5 +49,6 @@
|
|
49
49
|
|
50
50
|
free(*(lv + j));
|
51
51
|
}
|
52
|
+
free(*(lv + j));
|
52
53
|
free(lv);
|
53
54
|
```
|
4
誤記修正...orz
answer
CHANGED
@@ -44,10 +44,10 @@
|
|
44
44
|
|
45
45
|
int j=0;
|
46
46
|
for(j=0; j<i; j++) {
|
47
|
-
printf("%f ", (*(lv +
|
47
|
+
printf("%f ", (*(lv + j))->time);
|
48
|
-
printf("%f\n", (*(lv +
|
48
|
+
printf("%f\n", (*(lv + j))->score);
|
49
49
|
|
50
|
-
free(*(lv +
|
50
|
+
free(*(lv + j));
|
51
51
|
}
|
52
52
|
free(lv);
|
53
53
|
```
|
3
誤記修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
```C
|
5
5
|
for(i=0;i>0;i++){
|
6
|
-
fscanf(fp,"%f %f",lv[i].time,lv[i].score);
|
6
|
+
fscanf(fp,"%f %f", lv[i].time,lv[i].score);
|
7
7
|
}
|
8
8
|
```
|
9
9
|
|
@@ -36,7 +36,7 @@
|
|
36
36
|
lv = (struct lvlv**)malloc(sizeof(struct lvlv *));
|
37
37
|
(*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
|
38
38
|
|
39
|
-
while(fscanf(fp,"%f %f", (*lv)->time, (*lv)->score) > 1){
|
39
|
+
while(fscanf(fp,"%f %f", &((*lv)->time), &((*lv)->score)) > 1){
|
40
40
|
lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
|
41
41
|
(*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
|
42
42
|
i++;
|
2
誤記修正と追記
answer
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
- このforループ1回も回らないのでは?
|
2
2
|
iの初期値=0、終了条件 iが0より大きい
|
3
3
|
|
4
|
-
```
|
4
|
+
```C
|
5
5
|
for(i=0;i>0;i++){
|
6
6
|
fscanf(fp,"%f %f",lv[i].time,lv[i].score);
|
7
7
|
}
|
8
8
|
```
|
9
9
|
|
10
|
-
- メモリ壊してますよ
|
10
|
+
- 確保していない範囲のメモリを参照していますよ ~~メモリ壊してますよ~~
|
11
11
|
|
12
|
-
```
|
12
|
+
```C
|
13
13
|
struct lvlv *lv;
|
14
14
|
//略
|
15
15
|
lv = (struct lvlv*)malloc(sizeof(struct lvlv));
|
@@ -21,4 +21,33 @@
|
|
21
21
|
//この時点でi=1なので、lv[i]はmallocで確保していない領域にアクセスしている
|
22
22
|
printf("%f\n",lv[i].time);
|
23
23
|
|
24
|
+
```
|
25
|
+
|
26
|
+
----
|
27
|
+
|
28
|
+
愚直に書くとこんな感じ?
|
29
|
+
※ゴリゴリのC言語書くの何年振りかわからないので間違ってる可能性あり。
|
30
|
+
|
31
|
+
```C
|
32
|
+
//略
|
33
|
+
struct lvlv **lv;
|
34
|
+
//略
|
35
|
+
i=0;
|
36
|
+
lv = (struct lvlv**)malloc(sizeof(struct lvlv *));
|
37
|
+
(*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
|
38
|
+
|
39
|
+
while(fscanf(fp,"%f %f", (*lv)->time, (*lv)->score) > 1){
|
40
|
+
lv = (struct lvlv**)realloc(lv, sizeof(struct lvlv *) * i);
|
41
|
+
(*lv) = (struct lvlv*)malloc(sizeof(struct lvlv));
|
42
|
+
i++;
|
43
|
+
}
|
44
|
+
|
45
|
+
int j=0;
|
46
|
+
for(j=0; j<i; j++) {
|
47
|
+
printf("%f ", (*(lv + i))->time);
|
48
|
+
printf("%f\n", (*(lv + i))->score);
|
49
|
+
|
50
|
+
free(*(lv + i));
|
51
|
+
}
|
52
|
+
free(lv);
|
24
53
|
```
|
1
誤記修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
- このforループ1回も回らないのでは?
|
2
2
|
iの初期値=0、終了条件 iが0より大きい
|
3
3
|
|
4
4
|
```
|
@@ -7,7 +7,7 @@
|
|
7
7
|
}
|
8
8
|
```
|
9
9
|
|
10
|
-
|
10
|
+
- メモリ壊してますよ
|
11
11
|
|
12
12
|
```
|
13
13
|
struct lvlv *lv;
|