2 yuwei629721 yuwei629721 于 2013.06.11 19:00 提问

用push_back函数将数存入结构体指针向量中编译不出错,运行的时候出不来!

#include
#include
#include
using namespace std;
typedef struct person
{
string name;
vector length;
}person,*person_List;
int main()
{
int number;
person_List p;
person p1;

p = (person_List)malloc(sizeof(person));
for(int i = 0;i < 5;i ++)
{
    cin >> number;
    p->length.push_back(number);
}
for(i = 0;i < p->length.size();i++)
    cout << p->length[i] << " " ;
return 0;

}
用结构体p1是对的,但是用结构体指针就不对了,不知道为什么?求大神指导啊!

1个回答

xudafeng
xudafeng   2018.04.06 11:15

用结构体时,会对length执行构造函数,使用指针申请的是内存空间,就不执行构造函数了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!