質問編集履歴
1
追加しました.見よう見まねで書いてみたのですがSegmentation fault: 11と出てしまいます
title
CHANGED
File without changes
|
body
CHANGED
@@ -74,7 +74,13 @@
|
|
74
74
|
}
|
75
75
|
|
76
76
|
|
77
|
+
\追加しました
|
78
|
+
int cmp( const void *p, const void *q ) {
|
79
|
+
return ((struct student*)p)->id - ((struct student*)q)->id;
|
80
|
+
}
|
77
81
|
|
82
|
+
|
83
|
+
|
78
84
|
void search(struct student *students[STDNT], int n, int type) {
|
79
85
|
struct student *selected[100];
|
80
86
|
int i, j, numSameType=0;
|
@@ -84,6 +90,13 @@
|
|
84
90
|
}
|
85
91
|
}
|
86
92
|
|
93
|
+
|
94
|
+
\追加しました
|
95
|
+
int m = sizeof selected / sizeof( struct student );
|
96
|
+
qsort( selected, m, sizeof(struct student), cmp );
|
97
|
+
|
98
|
+
|
99
|
+
|
87
100
|
for (i=0; i<numSameType; i++) {
|
88
101
|
if (selected[i]->type==ST_UNDERGRADUATE) {
|
89
102
|
printf("%d %d %s %s\n", selected[i]->type, selected[i]->id, selected[i]->account, ((struct undergraduate*)selected[i])->program);
|