0
私はキュー型の変数を初期化したい。しかし、私は少し問題に走っています。警告は、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;
}
アレイのサイズMAXである場合、には要素が存在しませんMAXのインデックスで、0からMAX-1までの範囲です。それ以外にも、テーブルは整数の配列なので、暗黙的にポインタ(テーブルは配列なのでポインタ)を整数点に割り当てることはできません –
@ZachPあなたは何を意味するのかよくわかりません... – xxFlashxx
Alexですあなたが何をしようとしているのか明確ではありません。警告のある行は、配列が整数用であるが、キューを配置しようとしているためです。 MAXは4であり、配列の有効なインデックスは4ではなく0,1,2および3であるため、c.array [X]には整数のみを指定でき、Xは0からMAX-1まででなければなりません。 –