質問編集履歴
2
削除済みの投稿
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,95 +1 @@
|
|
1
|
-
strcpyについての質問です。しばらくはこのコードでちょくちょくわからないことがあったら、質問するのでお願いします。
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
```#define _CRT_SECURE_NO_WARNINGS
|
6
|
-
|
7
|
-
#define HASHSIZE 17
|
8
|
-
|
9
|
-
#include <stdio.h>
|
10
|
-
|
11
|
-
#include <stdlib.h>
|
12
|
-
|
13
|
-
#include<string.h>
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
struct match* hashtable[HASHSIZE];
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
struct match {
|
22
|
-
|
23
|
-
char *home;
|
24
|
-
|
25
|
-
char *away;
|
26
|
-
|
27
|
-
struct match_score* r;
|
28
|
-
|
29
|
-
struct match *next;
|
30
|
-
|
31
|
-
};
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
void add(int year, int month, int day, char* home_team, int home_score, int away_score, char* away_team) {
|
38
|
-
|
39
|
-
struct match* ptr;
|
40
|
-
|
41
|
-
ptr = (struct match *)malloc(sizeof(struct match));
|
42
|
-
|
43
|
-
|
1
|
+
strcpyを用いる質問をしましたが都合により削除することになりました。
|
44
|
-
|
45
|
-
strcpy(ptr->away,away_team);
|
46
|
-
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
int main() {
|
52
|
-
|
53
|
-
char home_team[256], away_team[256];
|
54
|
-
|
55
|
-
int home_score, away_score;
|
56
|
-
|
57
|
-
int year, month, day, i, f;
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
const char* filename = "jleague.txt";
|
62
|
-
|
63
|
-
FILE* fp;
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
for (i = 0; i < HASHSIZE; i++) {
|
68
|
-
|
69
|
-
hashtable[i] = NULL;
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
fp = fopen(filename, "r");
|
76
|
-
|
77
|
-
while ((f = fscanf(fp, "%d %d %d %s %d %d %s", &year, &month, &day, home_team, &home_score, &away_score, away_team)) != EOF) {
|
78
|
-
|
79
|
-
add(year, month, day, home_team, home_score, away_score, away_team);
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
}
|
90
|
-
|
91
|
-
```このコードは、与えられたファイルを読みとって、データを取り出すといった内容です。
|
92
|
-
|
93
|
-
add関数内にあるstrcpyを使って、char型のhome_teamをそのまま、コピーして構造体変数であるhomeに代入したいと思っておりますが、例外が発生しておりできない状態です。ここでは、エラーの内容では*homeが定義されていないとのことです。
|
94
|
-
|
95
|
-
charの同じポインタ変数なので型違いはないと思いますが、ご協力お願いします。
|
1
内容と異なるコードを出したから
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,27 +36,13 @@
|
|
36
36
|
|
37
37
|
void add(int year, int month, int day, char* home_team, int home_score, int away_score, char* away_team) {
|
38
38
|
|
39
|
-
int hashval;
|
40
|
-
|
41
39
|
struct match* ptr;
|
42
|
-
|
43
|
-
hashval=hash(home_team, away_team);
|
44
40
|
|
45
41
|
ptr = (struct match *)malloc(sizeof(struct match));
|
46
42
|
|
47
43
|
strcpy(ptr->home,home_team);
|
48
44
|
|
49
45
|
strcpy(ptr->away,away_team);
|
50
|
-
|
51
|
-
ptr->next = hashtable[hashval];
|
52
|
-
|
53
|
-
hashtable[hashval] = ptr;
|
54
|
-
|
55
|
-
ptr = push(ptr, home_team, away_team);
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
46
|
|
61
47
|
}
|
62
48
|
|