我有一个结构定义为:

typedef struct
{
    char first_name[11];
    char last_name[21];
    char city_code[3];
    char zip_code[5];
    char area_code[4];
    char phone_num[8];
} subscriber;


我根据控制台输入创建这些结构的数组:

subscriber database[num_of_subscribers]


我编写了一个函数,该函数应该交换数组中的两个元素:

void swap_cells(subscriber dbase[],int index1,int index2)
{
    subscriber temp;
    memcpy(&temp,&dbase[index1],sizeof(temp));
    memcpy(&dbase[index1],&dbase[index2],sizeof(temp));
    memcpy(&dbase[index2],&temp,sizeof(temp));
}


而且它不像我想象的那样起作用...为什么有任何想法?

最佳答案

您的解决方案应该有效,但更简单:

void swap_cells(subscriber dbase[],int index1,int index2)
{
    subscriber temp;

    temp = dbase[index1];
    dbase[index1] = dbase[index2];
    dbase[index2] = temp;
}

关于c - 复制结构数组元素不起作用? C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22723677/

10-12 01:33