함수에 다음 코드가있는 경우 오류가 발생하지 않고 아무 문제없이 컴파일 할 수 있습니다. 일단 전역 범위에 넣으면 "여러 개의 다른 오류와 함께"크기가 0 인 배열을 할당 할 수 없습니다 "오류가 발생했습니다. 왜 이런 일이 일어나고 어떻게 오류를 없앨 수 있습니까? 나는 전역 변수의 위험을 알고있다. 이것은 단지 간단한 테스트 케이스 일 뿐이다.왜 전역 스코프 내 배열 첨자에 액세스 할 수 없습니까?
int* intest[2];
intest[0] = new int;
이상한데 왜 전역 변수에 새 값이나 할당을 사용할 수 없습니까? – judeclarke
@judeclarke : 그것은 단지 약간의 온 전성을 보존하는 것입니다. 네임 스페이스 범위에 일반적인 문을 넣을 수 있다면 별도의 컴파일을 고려하여 어떤 순서로 실행해야합니까? 이것이 초기화에 대한 "전역 초기화 실패"라고하는 문제입니다. 당신은 * 초기화 할 때 어떤 효과가있는 표현식을 넣을 수 있습니다. 이것은 C++의 적절한 모듈이 부족한 것과 관련이 있습니다. –
-1 : 물론 전역 범위에서'new'와 할당을 사용할 수 있습니다. 예 :'int * x, * y = x = new int; int main() {}' –