構造体に格納した個人情報を年齢の高い順に表示するのですが
うまくいきません。
エラー内容を調べるとsort関数の
stu = (p+i);
(p+i) = (p+i-1);
(p+i-1) = stu;
の部分に問題点があるようなのですが
構造体とポインタにおいてまだ理解が不十分なので
説明とともに本来の解答を教えていただけないでしょうか
#include <stdio.h>
struct student{
char name[20];
int age;};
void sort(struct student *p){
struct student *stu;
int i;
for(i=3;i>0;i--){
if((p+i)->age > (p+i-1)->age){
stu = (p+i);
(p+i) = (p+i-1);
(p+i-1) = stu;
}
}
}
int main(void){
struct student s[] = {{ "Daniel", 7 }, { "Michael", 3 }, { "Ethan", 2 }, { "Joshua", 6 }};
sort(s);
return 0;
}