lenali 发表于 2016-12-8 19:53:33

编程小妹栈的初始化问题求帮助~~~

如果栈的定义如下:
#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))

谦虚求学 发表于 2016-12-9 12:28:07

你还是没有理解栈的 原理站顶与栈底是是相隔了多少元素,    sizeof ( ElemType) 是类型的大小,他有多少个元素 就是 STACK_INIT_SIZE 100,所以要剩以   sizeof ( ElemType)。OK {:5_109:}

lenali 发表于 2016-12-9 16:39:19

万分感谢你回复帖子, 我还是没太理解,栈的原理是*top和*base相隔了多少元素,而 *base指向的是栈底的元素,那我认为不应该是s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)), 应该是
s->top=(ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)), 万分期盼你继续关注我的问题!谢谢!
页: [1]
查看完整版本: 编程小妹栈的初始化问题求帮助~~~