gpt4 book ai didi

c - 队列无法正确返回后值?

转载 作者:行者123 更新时间:2023-11-30 18:00:22 24 4
gpt4 key购买 nike

我想用动态数组创建队列,问题是当我测试 int main() 中的 q.rear 值(用于稍后插入数据)时,它不再是 -1 了。我哪部分做错了?

这是一段代码:

#include <stdio.h>
#include <conio2.h>
#include <stdlib.h>

typedef struct{
int *data;
int front,rear,max;
}tqueue;
tqueue create(int size)
{
tqueue q;
q.data=(int *)malloc(size*sizeof(int));
q.front=0;
q.rear=-1;
q.max=size;
return q;
}
int main()
{
tqueue q;
int size=4;
create(size);
printf("\n%d",q.rear);
getch();
return 0;
}

最佳答案

您没有将 create() 的结果分配给 q。以下代码调用 create() 并丢弃结果,使 q 保持其原始状态:

create(size);

要修复,请将上面的行替换为:

q = create(size);

关于c - 队列无法正确返回后值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com