如何解决如何修改我的堆栈操作 结构地址问题
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->top)] = item; 有错误。(特别是粗体部分)它说读访问错误.我发现我必须在地址中编写代码,但我在值中编写代码。但我不知道如何更改我的代码。我如何表达 Struct 数组地址?
解决方法
首先,size
应该是一个 int 值而不是 DATA_TYPE
。
然后在推送中,您应该使用 s->arr[++(s->size)]
。
但是,您仍然需要确保堆栈和 arr
已正确初始化/分配。我想知道您想如何实施您的 pop()
以及 top
将如何运作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。