0
私はなぜ以下のコードがうまくいかないのだろうかと思っていました。私は1つから別の配列をコピーするためにポインタを使用しているが、それはまったくコピーされません。何か不足していますか?ポインタを使用して2つの配列を交換する
#include <stdio.h>
typedef struct student {
int id;
char *pname;
double points;
} STUD;
void stud_printx(STUD s) {
printf("[%d:%s] = %lf\n", s.id, s.pname, s.points);
}
void stud_swap(STUD *s1, STUD *s2) { // space to be filled - my code written
STUD tmp;
tmp = *s1;
*s1 = *s2;
*s1 = tmp;
}
int main(void) {
STUD s1 = {1, "Choi", 9.9};
STUD s2 = {2, "Park", 0.1};
stud_printx(s1);
stud_printx(s2);
stud_swap(&s1, &s2); // space to be filled - my code written
stud_printx(s1);
stud_printx(s2);
return 0;
}
必ずしもすべての学生はスタッドです:) –
再ハァッ、そのプログラムには配列がありません、「*私は*配列をコピーするためにポインタを使用している」でなければなりません。 – ikegami
タイプミスとして閉じるように投票しました - あなたは '* s2 = tmp;'を心に留めていましたが、ちょうどそれを正しくタイプしていないことが明らかです –