将struct数组的元素复制到另一个相同类型的结构中

时间:2014-02-08 09:14:03

标签: c++

如果有结构:

struct Student // Student structure to store student's records
{
int rollno; // student rollno
string name; // student name
string address; // address
int pno; // phone number
};

和int main()包含

int main()
{
Student *s;
s= new Student [10];
}

那么我们如何将结构分配给相同类型的不同结构?

void arrange()
{
Student *p= new Student;
//    int temp;
    for (int i=0; i<10; i++)
    {
        for (int j=0; j<10; j++)
        {
            if (i != j)
            {
                if (s[i].rollno > s[j].rollno)
                {
                    p = s[i];
                    s[i] = s[j];
                    s[j] = p;
                }
             }
        }
    }

2 个答案:

答案 0 :(得分:1)

  

我们如何将结构分配给相同类型的不同结构

只需复制构造它:

int main()
{
    Student s[10]; // array of 10 students
    Student student = s[5]; // copy of 6th element of array
}

你用所有这些指针过度复杂化了。

答案 1 :(得分:0)

如果您将p声明为指向学生的指针,则struct会访问*p。所以你应该写:

*p = s[i];
s[i] = s[j];
s[j] = *p;

但是,我不认为指针在这里有任何用处。只需写下

Student p;