私はで使用std::vector::push_back
してfor-loop
おり、if条件を追加した瞬間にエラーが発生し始めます。
if(p>0) a[p]->vec.push_back(i)
wherea
は特にベクトルを含む構造体です。
エラーは条件に依存していないようです。
struct link
{
vector<int>children;
int noOfchildren;
struct link * parent;
}
typedef struck link * node;
for(i=1;i<=n;i++)
{
a[i]=(node)malloc(sizeof(element));
scanf("%d",&p);
a[i]->parent=a[p];
a[i]->noOfchildren=0;
if(p>0)
a[p]->children.push_back(i);
}
a[0] は以前に初期化されています。