编程小妹栈的初始化问题求帮助~~~
如果栈的定义如下:#define STACK_INIT_SIZE 100
typedef struct{
ElemType *base;
ElemType *top;
int stackSize;
}
在栈的初始化的时侯为什么要乘以STACK_INIT_SIZE?base不是指向栈底的指针变量么?像链表结构一样,直接分配sizeof(ElemType)不对吗?
s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType))
你还是没有理解栈的 原理站顶与栈底是是相隔了多少元素, sizeof ( ElemType) 是类型的大小,他有多少个元素 就是 STACK_INIT_SIZE 100,所以要剩以 sizeof ( ElemType)。OK {:5_109:} 万分感谢你回复帖子, 我还是没太理解,栈的原理是*top和*base相隔了多少元素,而 *base指向的是栈底的元素,那我认为不应该是s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)), 应该是
s->top=(ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)), 万分期盼你继续关注我的问题!谢谢!
页:
[1]