我想用队列类型初始化我的变量。但我遇到了一些麻烦。该警告表示指向int的整数转换的指针不兼容。这是什么意思?
#include <stdio.h>
#include <stdlib.h>
#define MAX 4
struct queue
{
int array[MAX];
int front;
int back;
};
typedef struct queue Queue;
Queue qInit(Queue table[], int front, int back);
int main(void)
{
Queue table[MAX];
int front, back;
qInit(table, front, back);
return 0;
}
Queue qInit(Queue table[], int front, int back)
{
Queue c;
c.array[MAX]=table; // <---- getting warning right here.
c.front=front;
c.back=back;
return c;
}
答案 0 :(得分:1)
问题是(@Zach P也试图解释)数组[MAX]包含MAX数值,索引0到MAX-1,没有位置MAX,所以最后一个索引是数组[MAX-1]。
其次table是一个指向数组的指针,所以你不能指定一个指向int变量的指针(array [MAX-1]的类型为int)