質問編集履歴

2

削除済みの投稿

2020/07/08 06:45

投稿

退会済みユーザー
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
- strcpy(ptr->home,home_team);
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

内容と異なるコードを出したから

2020/07/08 06:45

投稿

退会済みユーザー
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