前提・実現したいこと
ある配列への各要素を指すポインタを格納した配列
を並び替えること.
発生している問題・エラーメッセージ
Alphabet=a Nomber=4 Alphabet=t Nomber=6 Alphabet=u Nomber=7 このように入力すると以下のエラーがでてしまいます。 Segmentation fault (core dumped)
該当のソースコード
ソースコード #include<stdio.h> typedef struct person{ char a[100]; int y; } SC; void rank(SC table[], SC* rank_array[]){ rank_array=&table; int i,j; SC temp; for(i=0;i<3;i++){ for(j=i+1;j<3;j++){ if(rank_array[i]->y<rank_array[j]->y){ temp=*rank_array[i]; rank_array[i]=rank_array[j]; rank_array[j]=&temp; } } } } int main(){ int i; SC table[3]; SC* rank_array[3]; for(i=0;i<3;i++){ printf("Alphabet="); scanf("%s",table[i].a); printf("Nomber="); scanf("%d",&table[i].y); } rank(table, rank_array); for(i=0;i<3;i++){ printf("%s %d\n",rank_array[i]->a,rank_array[i]->y); } return 0; }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Windows10 ubuntu
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/11 13:03 編集