gpt4 book ai didi

c - 使用指针交换两个数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:56 24 4
gpt4 key购买 nike

我想知道为什么下面的代码不起作用。我使用指针将数组从一个复制到另一个,但它根本不复制。我错过了什么吗?

#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;
}

最佳答案

*s1 = *s2;  // Copy original *s2 into *s1
*s1 = tmp; // Copy original *s1 into *s1

应该是

*s1 = *s2;  // Copy original *s2 into *s1
*s2 = tmp; // Copy original *s1 into *s2

关于c - 使用指针交换两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com