gpt4 book ai didi

C - 从 int* 到 int 的无效转换

转载 作者:行者123 更新时间:2023-11-30 18:33:21 25 4
gpt4 key购买 nike

Line 20| Col 15 [Error] invalid conversion from 'ElemArr* {aka int*}' to 'ElemArr {aka int}' [-fpermissive]

我收到此错误,但不知道原因。我是一名学生,在研究这个问题时,我在尝试研究“圆形阵列”概念时遇到了这个特定问题。谢谢!我尝试将 ElemArr e[MAX] 更改为 int elem[MAX] 并在那里进行操作,但它仍然不起作用!

#include<stdio.h>
#include<stdlib.h>
#define MAX 5

typedef int ElemArr;

typedef struct{
ElemArr E[MAX];
int top;
int back;
}Queue;

void initQueue(Queue *Q);
void Enqueue(Queue *Q, ElemArr E);

int main(){
Queue q;
ElemArr e[MAX] = {4, 21, 65, 12, 17};
initQueue(&q);
Enqueue(&q, e);
return 0;
}

void initQueue(Queue *Q){
Q->top = 1;
Q->back = 0;
printf("Queue is initialized");
}

void Enqueue(Queue *Q, ElemArr E){
if((Q->back+2) % MAX != Q->top){
Q->back = (Q->back+1) % MAX;
Q->E[Q->back] = E;
printf("Enqueue done");
}
}

void Dequque(Queue *Q){
if((Q->back+1) % MAX != Q->top){
Q->top = (Q->top+1) % MAX;
}
}

最佳答案

Enqueue 函数仅接受一个 ElemArr 值,但您试图传递整个数组。您需要为每个元素单独调用它。改变

Enqueue(&q, e);

for (int i = 0; i < MAX; i++) {
Enqueue(&q, e[i]);
}

关于C - 从 int* 到 int 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931217/

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