I am writing a C++ class that uses some fixed arrays, as well as some dynamically allocated arrays. I was wondering if anybody can guide me for the proper way to allocate memory for the dynamic arrays , probably in the constructor/deconstructor, and also if I need to explicitly call them to make sure I don't get a seg fault. Here is a simplified version of the related part of my code:
class Network {
    public:
    int n_nodes;
    int user_index[MAX_USERS]; //a fixed array
    int adjacency_matrix[][MAX_ITEMS];
    //Network(int n_node, int** adjacency); //I would rather to set the element s in a function other than the constructor
    Initializer(int n_node, int** adjacency);
    ~Netowrk();
    }
So here are my specific question for this class:
1 - Can I have the 2D array adjacency_matrix[][] with undecided number of rows and columns until it's set by the user in the initializer function?
2 - where should I delete the 2D array? should I write it in the deconstructor? Should I call the deconstructor explicitly? Is there anything else I need to destroy in the deconstructor?
 
     
     
     
     
     
    