С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Darthriddikc
10 / 10 / 0
Регистрация: 23.12.2012
Сообщений: 45
#1

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

22.10.2013, 22:04. Просмотров 417. Ответов 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 выделяется память под массив указателей, но и статический массив – это ведь по сути константный указатель (хотя где-то я читал, что это не так, и он приводится к указателю, только при обращении к нему). Вообще в чём отличие тогда статического от динамического массива кроме их определения и что они хранятся в разной памяти?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 22:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель на многомерный массив (C++):

Указатель на многомерный массив - C++
Есть двумерный массив, его нужно передать в функцию, так, что бы внутри функции можно было его изменять. Как с помощью указателей...

Указатель на многомерный массив - C++
Можно ли создать и передать указатель одной строкой или как-то попроще? int main() { int m; int *pa = m; int** a = ...

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Условие:Реализовать 3 функции, каждая из которых принимает указатель на...

Многомерный массив - C++
найти и напечатать значения и индексы минимального элемента в каждом рядке матрицы W(N,M)

Многомерный массив. С++ - C++
Здравствуйте нужно решить две задачки. а) Найдите сумму всех элементов матрицы размером 6х6, состоящей из элементов вещественного типа...

Многомерный массив - C++
Найти максимальный элемент в массиве. Размеры массива задайте сами. Сделайте три варианта программы. В первом элементы массива...

1
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.10.2013, 23:53 #2
указатель на массив - это не то же самое что и указатель на указатель. типы разные.
int **ptarr=arr; // так не правильно, ...
не правильно потому что arr неявно скастился к указателю на массив (а это не указатель на указатель), а не из-за того, что там кто-то не знает о размерах.
найдите место, где вы читали о том, что массивы - это не то же самое что и указатели и еще раз перечитайте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2013, 23:53
Привет! Вот еще темы с ответами:

Многомерный массив, Си!!! - C++
Дан массив целых чисел a. Изменить индексацию массива на a

многомерный массив - C++
помогите пожалуйста написать программу: Дана целочисленная прямоугольная матрица. Определить: 1) количество отрицательных элементов...

Многомерный массив - C++
Вот надо решить задачу. Первую я сделал. Помогите пожалуйста со второй и если можно то без замудреного кода ) ...

Многомерный массив - C++
Имеется вот такое задание: Создать программу, которая реализует журнал с оценками в виде двумерного массива (студенты - строки, оценки за...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.