复制结构数组元素不起作用? C

时间:2014-03-28 21:41:28

标签: c structure memcpy

我的结构定义为:

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

它不起作用,因为我认为它...任何想法为什么?

1 个答案:

答案 0 :(得分:1)

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

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

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