Форум программистов, компьютерный форум CyberForum.ru

Указатель на многомерный массив - C++

Восстановить пароль Регистрация
 
Darthriddikc
10 / 10 / 0
Регистрация: 23.12.2012
Сообщений: 45
22.10.2013, 22:04     Указатель на многомерный массив #1
Здравствуйте, я никак не пойму... вот например для того чтобы инициализировать указатель на двумерный статический массив, указатель должен знать размер одного, назовём его, блока данных, состоящего из элементов, содержащие значения. Например:
C++
1
2
3
int arr[3][5];
int **ptarr=arr; // так не правильно, будет ошибка, так как указатель ptarr не знает, что в одном блоке 5 значений int
int (*ptarr)[5]=arr; // так правильно, так как создаётся указатель на массив из 5 значений int
и с указателем ptarr можно будет делать всё, как и с массивом arr
А вот в динамическом двумерном массиве наоборот инициализация указателя только как в строке 2. Например:
C++
1
2
3
4
5
int **arr=new int*[3];
for(i=0; i<3; i++)
    arr[i]=new int[5];
int **ptarr=arr; // проглатывает на ура
int (*ptarr)[5]=arr; // пишет ошибку что из int** не может преобразовать в int(*)[5]
Откуда в этом случае указатель ptarr узнаёт о размере одного блока arr, понятно, что в строке 1 выделяется память под массив указателей, но и статический массив – это ведь по сути константный указатель (хотя где-то я читал, что это не так, и он приводится к указателю, только при обращении к нему). Вообще в чём отличие тогда статического от динамического массива кроме их определения и что они хранятся в разной памяти?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 22:04     Указатель на многомерный массив
Посмотрите здесь:

Многомерный массив, Си!!! C++
многомерный массив C++
C++ Многомерный массив
C++ Указатель на многомерный массив
Многомерный массив C++
C++ Многомерный массив
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
Многомерный массив. С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.10.2013, 23:53     Указатель на многомерный массив #2
указатель на массив - это не то же самое что и указатель на указатель. типы разные.
int **ptarr=arr; // так не правильно, ...
не правильно потому что arr неявно скастился к указателю на массив (а это не указатель на указатель), а не из-за того, что там кто-то не знает о размерах.
найдите место, где вы читали о том, что массивы - это не то же самое что и указатели и еще раз перечитайте.
Yandex
Объявления
22.10.2013, 23:53     Указатель на многомерный массив
Ответ Создать тему
Опции темы

Текущее время: 14:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru