unix c++인데, new 연산자 관련 질문입니다.

jee89의 이미지

class A;
A*** pA; // 클래스형 포인터

pA = new A*[idx_one][2];

한후
나중에 pA[0][0]->method 와 같은 방식으로 사용하렵니다만,
에러가 발생합니다.
뭐가 잘못됐나요?
컴파일 에러메시지 Cannot assign 'A ***' with 'A *(*)[2]'
cf). idx_one은 변수입니다.

exsider의 이미지

제가 알기로 new 연산자는 한번에 일차원 배열만 할당할 수 있습니다.
new A[][] 같은 것은 불가능하다는 예기이지요.

아마 이차원배열을 할당하려고 하신 거겠죠???

그럼

A ** pA = new A*[size1];   // 포인터 배열 할당

for(int i = 0; i < size1; ++i) {
    pA[i] = new A[size2];     // 각 포인터에 대해 배열할당
}

이런 식으로 하면 될 겁니다.

achrom의 이미지

A (*pA)[2] = new A[idx_one][2];
이렇게 하시면 될 것 같습니다.