c++ - how to make array of nodes? -


i have little bit of misconception of pointers , arrays. when want create array of nodes need pointer right?

is

node* array; array = new node[size]; 

and of course problem when want assign node array

void class::enqueue(int newnum) {      node* newnode = new node();     newnode->value = newnum;     newnode->age = 0;      if (isfull())         resize();     top++;     array[top] = newnode; // error. have pointer? }    

newnode pointer, understand. if want dynamically allocate node, have use pointer. if case, how assign node array? thanks.

you said want array of nodes, seems want array of pointers nodes. newnode in code pointer, array should capable of holding pointers of node. define array as:

node** array; array = new (node*)[size]; 

remember free memory when no longer needed:

delete []array; 

you can use array of node:

node* array; array = new node[size];  ... node *newnode = new node(); ... array[top] = *newnode; // dereference pointer 

but should careful because way contents of node copied array cell. there 2 separate objects, holding same data. cannot manipulate original node using contents of array.

i guess need array of pointers nodes :) (or bill said, vector of pointers: vector<node*> v;)


Comments