struct node
{
    int val;
    struct node *left, *right;
};
// Stack type 
struct Stack
{
    int size;
    int top;
    struct node* *array;
};
struct Stack* createStack(int size)
{
    struct Stack* stack =
        (struct Stack*) malloc(sizeof(struct Stack));
    stack->size = size;
    stack->top = -1;
    stack->array =
        (struct node**) malloc(stack->size * sizeof(struct node*));
    return stack;
}
What does this statement do?
stack->array =
    (struct node**) malloc(stack->size * sizeof(struct node*));
What will be the memory representation of it?
 
     
    