C言語で値を降順に並べ替えるプログラムを作成しました。
処理自体は間違っていないのですが、
ポインタのアドレスをずらすように使って下さいという指摘がありました。
修正するべき箇所が分からないのですが、一般的なアドレスの使い方って他にありますでしょうか?
C言語
1typedef struct{ 2 short no; 3 short jp; 4 short math; 5 short science; 6 short social; 7 short sum; 8}DATAstudent; 9 10/*合計値を降順に並べ替え*/ 11void SortDesc(DATAstudent *gradesList, int cnt){ 12 int loop1 = 0; 13 int loop2 = 0; 14 DATAstudent bfData = {0,0,0,0,0,0}; 15 16 for (loop1 = 0; loop1 < cnt; loop1++) { 17 for (loop2 = loop1 + 1; loop2 < cnt; loop2++) { 18 if((gradesList + loop1)->sum < (gradesList + loop2)->sum) { 19 bfData = *(gradesList + loop1); 20 *(gradesList + loop1) = *(gradesList + loop2); 21 *(gradesList + loop2) = bfData; 22 } 23 } 24 } 25}
*(gradesList + 2); は、
gradeList += 2;
*gradeList;
で、同じ位置を指します。ズラすとは、++gradeList; のようにポインタ自体を増減させることを言っていると思いますが、それで分かりますか?