Мне не повезло с динамическими указателями, когда я меняю их на 2 измерения и выше. Например, я хочу указатель на 2D-массив. Я знаю, что:
int A[3][4];
int (*P)[4] = A;
Полностью закончен (даже если я не совсем понимаю почему). Принимая во внимание, что:
int *P = new int[4];
работает, я подумал, что:
int **P = new int[5][7];
Будет также работать, но это не так. Этот код указывает на ошибку:
Error: A value of type "(*)[7]" cannot be used to initialize an entity of
type "int **"
Увидев это, новая часть становится указателем на массив из 7 целых чисел, которые я сделал:
int (*P)[4] = new int[7][4];
И это работает, но это не то, что я хочу выполнить. Делая это, я ограничусь хотя бы постоянным значением для любого последующего измерения, но я хочу, чтобы он был полностью определен во время выполнения и, следовательно, "динамический".
Как я могу пойти и сделать эту многомерную работу указателя?