가변 크기로 동적으로 할당 된 양방향 배열을 만들려고하는데 왜 내 자신의 상수 값을 만들면 컴파일되지 않는지 알 수 없습니다.C++에서 클래스의 메서드에서 동적으로 할당 된 행렬을 전송
const int oConstanta=N+1;
int (*m)[oConstanta]=new int[oConstanta][oConstanta];
그러나 대괄호 사이에 1000과 같은 일반 상수를 사용하면 성공적으로 컴파일됩니다.
const int oConstanta=N+1;
int (*m)[1000]=new int[1000][1000];
아무도 이유를 알고 있습니까?
추신 :
int **m=new int*[oConstanta];
for(i=1;i<=N;i++)
{
m[i]=new int[oConstanta];
init(m[i]);
}
내 문제를 해결하지만 내 전자의 방법은 좋은 생각이 왜 배우고 싶어요 : 나는 것을 알고있다.
첫 번째 것은 표준 C++가 아닙니다. –
'N'은 무엇입니까? @smarinov : 'N'에 따라 네, 그렇습니다. –
포인터를 사용하지 마십시오.대신에'std :: vector>'을 사용하고, 래퍼 클래스'Matrix'를 쓰는 것이 바람직합니다. –