这是我的代码:
struct queue {
int queue_arr[5];
int rear;
int front;
};
int main()
{
struct queue q;
int choice;
queue_init(q);
}
queue_init(struct queue *q)
{
int i = 0;
q->rear = -1;
q->front = -1;
for (; i < MAX; i++) {
q->queue_arr[i] = 0;
}
}
它会导致执行时出现分段错误:
[root@workmachine test_cpp]# ./queue Segmentation fault (core dumped)
如果我删除结构,我将使用int queue_arr[5]; int rear; int front;
,因为全局分割错误消失。为什么?以及如何避免使用结构?
答案 0 :(得分:6)
您应该传递地址:
queue_init(&q);
^
我很惊讶它现在可以编译。