는 내가 배열이 특정 값 비어 있는지 확인하려는 char[]
선택하면
#define BUFFER_LENGTH 64
#define QUEUE_LENGTH 100
char MessageQueue[QUEUE_LENGTH][BUFFER_LENGTH];
로 구성된 각각의 메시지와 함께 메시지 큐 역할을하는 2 차원 배열을 가지고 첫 번째 차원에만 해당
for(int i = 0; i < sizeof(MessageQueue); i++)
{
if(MessageQueue[i] == 0)
MessageQueue[i][j] = ....;
}
그러나 비어있는 경우 if
문을 입력하지 않습니다.
"비어 있음"을 정의 하시겠습니까? 여러분이 좋아하든 그렇지 않든, 그 것은'QUEUE_LENGTH * BUFFER_LENGTH' 문자를 차지하고,'MessageQueue [i]'는 그대로'0'을 선언하지 않을 것입니다. 그리고'sizeof (MessageQueue)'는 분명히 당신이 그 루프 톱 엔드에 사용하기를 원하지 않습니다. – WhozCraig
첫 번째 차원의 값이 0이되지 않습니다. 다른 배열, 즉 2D로 정의했습니다. – Coderchu
전체 차원이 0인지 확인해야합니다 (예 : 루프에서'MessageQueue [i] [0]'~'MessageQueue [i] [BUFFER_LENGTH-1]'모두가 0인지 확인하십시오.) –