>

이런 이유가 무엇인지 전혀 모르겠습니다. 누구든지 이것을 만난 적이 있습니까? Netbeans 8.2를 사용하고 있으며 프로그램이 디버그 모드에서 실행 중입니다.

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define N 100
int main() {
    //all lockers are closed
    bool lockers[N + 1] = {false};
    return 0;
}

Netbeans는 일부 인덱스에 int 값으로 보이는 것을 보유하고 있으며 모든 값을 false로 선언하면 강조 표시된 인덱스도 참이라고 말합니다.


  • 답변 # 1

    부울은 산술 유형이므로 초 기자에 명시 적 값을 제공하지 않으면 정적 인 것처럼 초기화해야합니다.

    이것은 (예를 들어) C11 6.7.9 Initialization 에서 자세히 설명되어 있습니다. :

    와이즈 비즈

    적절하게확인 측면에서 다음과 같이 코드를 임시로 변경하십시오 :

    21/ If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration.

    10/ If an object that has static or thread storage duration is not initialized explicitly and if it has arithmetic type, it is initialized to (positive or unsigned) zero.

    당신은 전혀 출력을 얻지 않아야한다. 만약 그렇다면, NetBeans 디버거가 잘못되었거나 잘못 사용하고있다 :-)

    #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define N 100 int main() { //all lockers are closed bool lockers[N + 1]= {false}; for (int i = 0; i <= N; ++i) if (lockers[i]) printf("%d is the wrong value\n", i); return 0; }

  • 이전 racket - 다항식 함수 만들기
  • 다음 openlayers - 클러스터 된 맵에서 기능을 열거하려면 어떻게해야합니까?