处理堆栈计数,检索和插入

时间:2015-10-23 02:16:30

标签: c pointers

Stack *S;
S = (Stack *)malloc(sizeof(Stack));
S->elements = malloc(sizeof(*S->elements)*tld->tldCount);

typedef struct Stack
{
    int capacity;
    int size;
    TLDNode** elements;
}Stack;

S->elements[S->size] = element;

or

S->elements[S->size] + 1 = element;

检索相同,我是否采用当前大小或大小-1

1 个答案:

答案 0 :(得分:1)

S-gt; size字段未在发布的代码中设置,那么我们如何猜测呢?建议:S-> size = tld-> tldCount;

如果遵循关于设置S->大小字段的评论,那么当S->元素[S-> size]访问超出元素数组的末尾时,两个建议语句都不正确。记住,在C中,数组索引从0开始并以'数组长度-1'

结束

如果size字段用于指示element数组中正在使用的条目数,那么这就是设置另一个元素的方法:

S->elements[S->size] = element;
S->size++;

但是,在进行任何此操作之前,需要这样做:

S->size = 0;

检索元素时,请说最近添加的元素使用:

S->size--;
element = S->elements[S-size];