LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Другими словами, определение int (*a)[m] дает возможность работать с массивом, созданным через new int[n][m]. Причем массив создается планарным, просто как n x m элементов int без этих ваших указателей на подмассивы.

Да, на низком уровне он плоский, но компилятор даёт наглядный синтаксис для имитации двумерной таблицы.

Можешь даже скастовать его в int* и пользоваться этими n*m элементов вручную одномерно. Или наоборот - сделать new int[n*m] и скастовать в int(*)[m] и пользоваться двумерно.

Получается, что вот это утверждение неверно:

Я не очень понял что там имелось ввиду. Но int** и int[][] - это разные типы, да. Первый и правда можно использовать как массив указателей на вложенные массивы, но выделить такую структуру за один раз невозможно - надо выделять каждый вложенный отдельным new.

Исправление firkax, :

Другими словами, определение int (*a)[m] дает возможность работать с массивом, созданным через new int[n][m]. Причем массив создается планарным, просто как n x m элементов int без этих ваших указателей на подмассивы.

Да, на низком уровне он плоский, но компилятор даёт наглядный синтаксис для имитации двумерной таблицы.

Можешь даже скастовать его в int* и пользоваться этими n*m элементов вручную одномерно.

Получается, что вот это утверждение неверно:

Я не очень понял что там имелось ввиду. Но int** и int[][] - это разные типы, да. Первый и правда можно использовать как массив указателей на вложенные массивы, но выделить такую структуру за один раз невозможно - надо выделять каждый вложенный отдельным new.

Исходная версия firkax, :

Другими словами, определение int (*a)[m] дает возможность работать с массивом, созданным через new int[n][m]. Причем массив создается планарным, просто как n x m элементов int без этих ваших указателей на подмассивы.

Да, на низком уровне он плоский, но компилятор даёт наглядный синтаксис для имитации двумерной таблицы.

Получается, что вот это утверждение неверно:

Я не очень понял что там имелось ввиду. Но int** и int[][] - это разные типы, да. Первый и правда можно использовать как массив указателей на вложенные массивы, но выделить такую структуру за один раз невозможно - надо выделять каждый вложенный отдельным new.