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
지금에 대한 시간 동안 대답을 찾고 있었어요,하지만 비슷한 구현을 보지 못했다 여기에 지금까지 무엇을 가지고 내가 여기에 주어진 것에. 혹시 궁금한 점이 있으시면, 숙제이며 프로토 타입은 강사가 주셨습니다.
공백으로 전달되기 때문에 gcc typeof
연산자를 사용할 수 없습니다.
경고가 표시됩니다. 나는 "당신을 위해 이것을 확인하지 않을 것임을 조심하십시오."라고 말하는 gcc 일 뿐이며, 28 행의 오류를 없앨 수는 없다는 것을 알고 있습니다.
미리 감사드립니다.
void*
의 배열이 아니다
호기심에서 벗어나서 왜 이것을하고 싶습니까? –
'sizeof'는 배열의 요소 수가 아닌 포인터의 크기를 알려줍니다. – asaelr
@Calvin - 대기열을 만들고 데이터 중복성을 없애기 위해 데이터 형식을 유지할 수 있도록 허용합니다. – FatAdama