I have this (simplified) C++ class:
class node{
public:
int num;
list<int> iplist;
};
Then I dynamically allocate memory for it:
node* node1 = (node*) malloc( sizeof(node) );
It's OK to use node1->num
, it's totally fine. However, (node1->iplist).push_back(10)
will cause segementation fault. I changed it back to:
node* node1 = new node;
It works fine again including (node1->iplist).push_back(10)
.
I've Google'd for the answer, realizing maybe this is because malloc()
doesn't initialize the element. But, I'm still confused on how to initialize a <list>
element when using malloc()
.