我在推送函数中遇到问题。我的代码是
struct stack_t{
DATA_TYPE size;
DATA_TYPE top;
DATA_TYPE *arr;
}
void push(stack_t* s, DATA_TYPE item) {
if (is_full(s) == true ) {
exit(1);
}
else {
s->arr[++(s->top)] = item;
}
}
s->arr[++(s->顶部(]=项目有错误。(特别是粗体部分(上面写着读取访问错误。我发现我必须用地址写代码,但我用值写代码。但我不知道如何更改我的代码。如何表达Struct数组地址?
首先,size
应该是int值,而不是DATA_TYPE
。然后在推送中,您应该使用s->arr[++(s->size)]
。但是,您仍然需要确保堆栈和arr
被正确初始化/分配。我想知道你想如何实现你的pop()
,以及top
将如何运作。