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;
}
这句话的作用是什么?
stack->array =
(struct node**) malloc(stack->size * sizeof(struct node*));
它的记忆表示是什么?
答案 0 :(得分:0)
stack->array =
(struct node**) malloc(stack->size * sizeof(struct node*));
struct node **返回指向指针(指向堆栈)的指针
stack-> size是堆栈的项目数量 sizeof(struct node *)是指向节点的指针的大小。
因此它创建了一个指针数组,其中每个指针指向堆栈中的一个元素。
答案 1 :(得分:0)
上述语句为struct node *
数组分配空间,即指向struct node
的指针。
然后,此数组中的每个指针都可以指向struct node
的实例。