|
첫번째 에러는 배열선언시 첨자에 관한 문제입니다.
배열의 첨자는 선언시에 상수여야 합니다.
#define X 5 혹은 const int X= 5;
int a[X]와 같은 방법은 사용이 가능하나
int X = 5;
int a[X]와 같은 방법은 사용이 불가능합니다.
두번째 에러는 new 연산자에 관한 에러입니다.
new 연산자 다음에 single object가 오면 그 타입의 포인터가 리턴됩니다.
int *a;
a = new int;
new 연산자 다음에 1차원배열이 오면 첫번째 열을 가리키는 포인터가 리턴됩니다.
이때 리턴타입은 배열타입의 포인터입니다.
int *b;
b = new int[3];
new 연산자 다음에 다차원배열이 오면 첫번째 열을 가리키는 포인터가 리턴됩니다만
리턴타입은 나머지 차원의 포인터 타입이옵니다(써놓으니까 더 어렵네요 ㅠ.ㅠ)
new int[4][3];의 경우에 (*)[3]가 리턴이 됩니다.
따라서
int *d;가 아닌
int (*d)[4];
d = new int[3][4];와같이 사용되어야 합니다.
마지막 에러는
int형에 맞지않는 타입을 할당할때 에러가 나는군요
저도 C++을 잘 몰라서 정확한 답변이 되었는지 모르겠군요.
미혜 님이 쓰신 글 :
: [C++ Error] ImgView.cpp(65): E2313 Constant expression required
: [C++ Error] ImgView.cpp(65): E2034 Cannot convert 'int ( *)[1]' to 'int *'
: [C++ Error] ImgView.cpp(110): E2062 Invalid indirection
:
: 이렇게 세개가 나요.. 65번째 줄은 배열을 선언한 곳 PValueArray = new int[h][w];
: 110번째는 PValueArray[y][x] = aaa;
: 입니다..
:
: 부탁드려요~~
:
:
:
: 김동욱 님이 쓰신 글 :
: : 무슨 에러인지 모르겠네요.
: :
: : 제가 보기에는 문제가 없는데.....
: :
: : 저도 초보라서 ...
: :
: : 미혜 님이 쓰신 글 :
: : : .h화일에서
: : :
: : : int * PValueArray;
: : :
: : : .cpp화일에서
: : :
: : : PValueArray = new int[h][w];
: : :
: : : 하고
: : :
: : : for (y=0; y<h; y++){
: : : for (x=0; x<w; x++){
: : : PValueArray[y][x] = aaa;
: : : }
: : : }
: : :
: : : 이러고요..
: : : form이 지워질때..
: : :
: : : delete [] PValueArray;
: : :
: : : 라고 했습니다..
: : : 모가 잘못되었나요??
: : : 에러가 계속 뜨네요..
: : :
: : : 고수님들 부탁드립니다.
: : :
|