将整数数组初始化为成员

时间:2016-10-29 19:29:46

标签: c struct initialization

我想用队列类型初始化我的变量。但我遇到了一些麻烦。该警告表示指向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;
}

1 个答案:

答案 0 :(得分:1)

问题是(@Zach P也试图解释)数组[MAX]包含MAX数值,索引0到MAX-1,没有位置MAX,所以最后一个索引是数组[MAX-1]。

其次table是一个指向数组的指针,所以你不能指定一个指向int变量的指针(array [MAX-1]的类型为int)