使用new来动态分配结构体数组

在做程序练习时,由一组数据组成的成员,刚开始时,没想到用结构体的方法,傻乎乎的创建了多个vector类。每个vector类bian变量中存放一类数据。程序如下

vector v1;
    vector v2;
    while(cin>>n1>>n2)
    {
        v1.push_back(n1);
        v2.push_back(n2);
        if(v1.size()>num2)
            break;
    }

后来反应过来,可以用new创建动态内存的方式。

struct dependent
{
    int a1;
    int a2;
};

    dependent *p2=new dependent[num2];

    int j=0;
    while(cin>>n1>>n2)
    {
        p2[j].a1=n1;
        p2[j].a2=n2;
        ++j;
        if(j==num2)
            break;
    }

delete p2;

因为创建的是结构体类型的数组,其中成员的赋值与结构体类型的变量有些不同。一般变量的赋值方式为

(*p2).a1=n1;或p2->a1=n1;

而结构体类型的数组赋值方式为p2[j].a1=n1;

你可能感兴趣的:(使用new来动态分配结构体数组)