gpt4 book ai didi

c++ - 你如何在 c 中交换结构数组的元素?

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

我已经看到关于这个主题的其他几个问题,但没有一个答案对我有用。

我的 swapClasses 方法如下:

void swapClasses(struct ClassInfo *p1, struct ClassInfo *p2){
ClassInfo *temp = p1;

*p1 = *p2;
*p2 = *temp;
}

但是当我执行代码并尝试添加一个技术上应该首先出现在数组中的类时,它只是添加到末尾。即使我知道那部分代码已执行(使用简单的 print 语句测试),也不会发生交换。我相信我使用指针的方式有问题。任何人都可以建议吗?

最佳答案

获取指向数组中某个元素的指针不会使该元素免于被另一个指向它的指针的写入覆盖。因此,您的交换功能是错误的。您应该将第一项复制到临时项中,如下所示:

void swapClasses(struct ClassInfo *p1, struct ClassInfo *p2){
ClassInfo temp = *p1;
*p1 = *p2;
*p2 = temp;
}

关于c++ - 你如何在 c 中交换结构数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19074427/

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