Prawidłowy sposób zainicjowania dynamicznego wskaźnika na wielowymiarową tablicę? [duplikować]

To pytanie ma już tutaj odpowiedź:

Jak prawidłowo pracować z dynamicznie przydzielanymi wielowymiarowymi tablicami w C ++ [duplikat] 1 odpowiedź

Miałem pecha z dynamicznymi wskaźnikami, gdy rozciąłem je na 2 wymiary i wyżej. Na przykład chcę wskaźnik do tablicy 2D. Wiem to:

int A[3][4];
int (*P)[4] = A;

Jest całkowicie legalny (nawet jeśli nie do końca rozumiem dlaczego). Biorąc pod uwagę, że:

int *P = new int[4];

działa, wyobrażałem sobie, że:

int **P = new int[5][7];

Czy działa również, ale tak nie jest. Ten kod określa błąd:

Error: A value of type "(*)[7]" cannot be used to initialize an entity of
       type "int **"

Widząc to, nowa część staje się wskaźnikiem do tablicy 7 liczb całkowitych, które zrobiłem:

int (*P)[4] = new int[7][4];

I to działa, ale nie to, co chcę osiągnąć. Robiąc to w ten sposób, ograniczam się przynajmniej do używania stałej wartości dla każdego kolejnego wymiaru, ale chcę, aby był w pełni zdefiniowany w czasie wykonywania, a zatem „dynamiczny”.

Jak mogłem przejść i sprawić, by ten wielowymiarowy wskaźnik działał?

questionAnswers(4)

yourAnswerToTheQuestion