gpt4 book ai didi

C - 对函数内部的 Struct* 数组的副本进行排序

转载 作者:行者123 更新时间:2023-11-30 20:28:27 26 4
gpt4 key购买 nike

struct numz
{
int num;
};

typedef struct numz_ numz;

int main()
{
int num_elements = 10;
numz* myStruct_a = smalloc(sizeof(int)*num_elements;

for (n = 0; n < num_elements; n++)
myStruct_a->num[n] = n;

funct(myStruct_a);

return 0;
}

numz *funct(numz *myStruct_a)
{
int num_elements = 10;
numz* myStruct_a_cpy = smalloc(sizeof(int)*num_elements;

for (n = 0; n < num_elements; n++)
{
myStruct_a_cpy->num[n] = myStruct_a->num[n];
}

//PSEUDO CODE
//REARRANGE THE ELEMENTS IN myStruct_a_cpy

return myStruct_a_cpy;
}

为什么是myStruct_a_cpy没有重新排列?

最佳答案

为什么要使用 smalloc(sizeof(int)*num_elements) 初始化 myStruct_a_cpy ?不应该是sizeof(myStruct)吗?

另外,为什么不直接使用 qsort 呢?

int 比较(const void * a, const void * b){ myStruct * struct_a = (myStruct*) a; myStruct * struct_b = (myStruct*) b; //比较两个结构体的内容, //如果 a < b,则返回 -1;如果 a > b,则返回 1;否则返回 0。}

myStruct *funct(myStruct *myStruct_a)

{
int num_elements = 10;
myStruct* myStruct_a_cpy = smalloc(sizeof(int)*num_elements);
for (n = 0; n < num_elements; n++)
{
myStruct_a_cpy[n] = myStruct_a[n]
}
qsort(myStruct_a_cpy, 10, sizeof(myStruct), compare);
}

关于C - 对函数内部的 Struct* 数组的副本进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081496/

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