微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修改我的堆栈操作 结构地址问题

如何解决如何修改我的堆栈操作 结构地址问题

我的推送功能有问题。我的代码

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 举报,一经查实,本站将立刻删除。