私の最初のC割り当ては、キューを作成することです。私はリンクリストとは対照的に配列ベースの実装を使用しています。C言語の新機能:構造体を配列に格納する
私は私のコードをコンパイルしようとすると、私は次のエラーを取得しています:ここで
Queue.c: In function 'Enqueue':
Queue.c:23: warning: assignment from incompatible pointer type
が私のコードである必要があれば、私は、ヘッダコードを供給します:
#include "QueueElement.h"
#include "Queue.h"
#define QUEUE_SIZE 10
struct QueueStruct {
QueueElement *contents[QUEUE_SIZE];
int size;
};
Queue CreateQueue(void) {
Queue q = malloc(sizeof(struct QueueStruct));
q->size = 0;
return q;
}
void DestroyQueue(Queue q) {
free(q);
}
void Enqueue(Queue q, QueueElement *e) {
if (q->size < QUEUE_SIZE) {
q->contents[q->size++] = *e; /* PROBLEM IS HERE */
}
}
これですべてのヘルプを問題は他の提案と同様に大きく評価されます。 ありがとうございます。
難解なポインタ記法のようです。 eを逆参照しようとしています.eの値(ほとんどのサイズの連続したメモリブロック)をポインタ(通常は4バイト)にコピーします。状況が合わず、サイズが一致しても、 'QueueElement'は' QueueElement * 'と同じではありません。 – Trinidad
「キュー」とは何ですか?あなたが提供したコードには 'Queue'の定義はありません。 – AnT