작품 :배열 할당 값
int GlobalVar = 5;
int * LPVar[] = {&GlobalVar};
이
가 작동하지 않습니다는 :
int GlobalVar = 5;
int * LPVar[]; // int * LPVar[1] doesn't work too
LPVar[0] = &GlobalVar; // errors here
은 ------ 빌드 시작 : 프로젝트 : 포인터를, 구성 : 릴리스는 Win32 - ---- 컴파일 중 ... ilovpointers.cpp. \ ilovpointers.cpp (9) : 오류 C2466 : 일정한 크기의 배열 0을 할당 할 수 없습니다. . \ ilovpointers.cpp (9) : 오류 C4430 : 누락 된 형식 지정자 - int 꾸민. 참고 : C++는 default-int. \ ilovpointers.cpp (9) 을 지원하지 않습니다. 오류 C2040 : 'LPVar': 'int []'간접 참조 수준이 다릅니다. 'int * [1]'에서부터 . \ ilovpointers.cpp (9) : 오류 C2440 : '초기화 중': 'int *'에서 'int []'로 변환 할 수 없습니다. 배열에 대한 참조 또는 포인터로의 변환이 있긴하지만 배열 형식 변환이 없습니다. 빌드 로그가 "파일 : // f : \ Visual Studio C++ \ Project1 \ Pointers \ Pointers \ Release \ BuildLog.htm"포인터 - 4 오류, 0 경고 ========== 빌드 : 0 성공, 1 실패, 0 최신, 0 건너 뜀
E DIT :
해결되었지만 질문이 있습니다.
#include <iostream>
#include <stdio.h>
using namespace std;
int GlobalVar = 5;
int * LPVar[1];
void main()
{
LPVar[0] = &GlobalVar;
printf("%i", *LPVar[0]);
cin.get();
}
LPVar는 전역 배열이므로 정의 직후에 왜 작동하지 않습니까?
'int * LPVar [1]'이 (가) 작동해야합니다. 그게 무슨 문제 야? – Pubby
'int * LPVar [1];'가 작동하지 않습니까? 그럼 우리에게 오류를 보여주십시오. – john
무엇이 문제입니까? –