이것은 내가 작성한 대기열에서 앞 항목을 삭제하기위한 코드입니다. itemPtr이 메인에서 어떻게 든 사용될 것이라고 이해하려고합니다. 아직 알려지지 않았지만 요점은 아닙니다. 나는 같은 방법으로 사용되는 NULL과 0이 있습니까C에서 대기열의 링크 된 목록 구현 빈 상태 및 빈 정보
if (queue->count == 0)
대신
if (!queue->count)
으로 사용할 수 있는지 여부를 궁금해?
추가하려면 어떻게해야합니까?
free(deleteLoc)
이 큐 제거 방법이 끝난 후에 deleteLoc가 사라질 것이라고 생각했지만 왜이 값을 추가할까요? 이것은 내 코드가 아니기 때문에 내가 궁금해. deleteLoc에 포함 된 메모리 또는 큐 -> 프론트 메모리를 제거합니까? 요점은 데이터 자체를 사라지게하는 것이 아닌가?
감사합니다. 뭔가 0
로 평가되면 당신이 false
로 평가하는 부울로 처리하는 경우
bool dequeue(H* queue ,void* itemPtr)
{
node* deletecLoc;
if (!queue->count)
return false;
*itemPtr = queue->front->dataPtr;
deleteLoc = queue->front;
if (queue->count == 1)
queue->front = queue->rear = NULL;
else
queue->front = queue->front->next;
(queue->count)--;
free(deleteLoc);
return true;
}
우선, 'NULL'은 null * 포인터 *의 상징적 이름입니다. 둘째, C에서는 0이 아닌 값이 모두 참인 반면 0은 거짓입니다. 그것은 논리 부정 연산자'!'가'queue-> count '가 0 (그리고 거짓)이라면'! queue-> count'가 true가 될 것이라고 설명합니다. 이 모든 것은 당신이 [좋은 초보자 몇권을 읽었다면] 알려졌어야합니다. (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list). 거기서 시작하십시오. –
그리고 질문 당 하나의 질문에 보관하십시오. [도움말 페이지] (http://stackoverflow.com/help), 특히 [여기서 어떤 주제에 관해서 물어볼 수 있습니까?] (http://stackoverflow.com/help/) 섹션을 읽어보십시오. on-topic) 및 [ "어떤 유형의 질문을하지 않아야합니까?"] (http://stackoverflow.com/help/dont-ask). 또한 [둘러보기] (http://stackoverflow.com/tour)와 [좋은 질문을하는 방법에 대해 읽어보십시오.] (http://stackoverflow.com/help/how-to-ask). 마지막으로 [Minimal, Complete, Verifiable Example] (http://stackoverflow.com/help/mcve)를 만드는 방법을 배우십시오. –