繁体   English   中英

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

[英]How do you swap elements of a struct array in c?

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

我的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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM