void *
で指される値をvoid *
配列に代入しようとしています。このコンパイラエラーでc、void *が指し示す値をvoid * arrayに代入する
23 void queue_enqueue(void *q, void *item) {
24 int len = 0 ;
25
26 len = sizeof(q) ;
27 q[len-1] =
28 item ;
29
30 return ;
31
32 }
:
myqueue.c:27: warning: dereferencing ‘void *’ pointer
myqueue.c:28: error: invalid use of void expression
私は今時間ほどの答えを探してきたが、私は同様の実装を見ていないここで私がこれまで持っているものです私がここに与えたものまで。あなたが疑問に思っていた場合は、これは宿題であり、プロトタイプはインストラクターによって与えられました。
voidとして渡されるため、gcc typeof
演算子を使用できませんでした。
私は警告で大丈夫です。私はあなたに "これをチェックするつもりはない"と私に言っているgccだと知っていますが、28行目のエラーを取り除くことはできません。
ありがとうございます。
void*
の配列ではありません
好奇心の高まりから、なぜこれをやりたいのですか? –
'sizeof'は配列の要素の数ではなく、ポインタのサイズを与えることを知っていますか? – asaelr
@Calvin - キューを作成してデータの冗長性を排除するために、データ型を保持できるようにしています – FatAdama