|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.05.2010, 23:02 | #1 | |
Заблокирован
Регистрация: 25.05.2009
Сообщений: 284
|
Динамический массив
Из-за чего я могу создать 2-мерный массив в этих 3-ёх строках кода?
Из-за чего я могу вложенный массив сделать выделив для него пямять, то есть вот это: Цитата:
Из-за того, что создан не простой массив чисел, а из-за того что создан массив указателей? Код:
2) Динамический объект на с++ создаётся так? Код:
Последний раз редактировалось Golovastik; 26.05.2010 в 23:33. |
|
27.05.2010, 00:10 | #2 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
У тебя есть массив указателей на указатель, т.е массив указателей на одномерный массив, т.е массив одномерных массивов у тебя.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
27.05.2010, 00:34 | #3 |
Заблокирован
Регистрация: 25.05.2009
Сообщений: 284
|
1)Это понятно. Вопрос такой.
Из-за чего я могу создать внутренний массив, то есть вот это: Код:
Код:
Из-за того что каждый элемент массива - это указатель, именно поэтому я имею права, создать вложенный массив, посредством обращения по индексу массива? То есть например так m[5]=36; Последний раз редактировалось Golovastik; 27.05.2010 в 00:37. |
27.05.2010, 00:46 | #4 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
щито ? читайте про арифметику указателей
|
27.05.2010, 00:49 | #5 |
Заблокирован
Регистрация: 25.05.2009
Сообщений: 284
|
Так я читал про них и спрашиваю, ответьте пожалуйста.
|
27.05.2010, 00:50 | #6 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Golovastik ну если тебе будет удобно писать вместо m[i] так *(m+1) никто не возражает .
|
27.05.2010, 00:55 | #7 |
Заблокирован
Регистрация: 25.05.2009
Сообщений: 284
|
Из-за чего я могу писать так *(m+1) или так m[i]?
|
27.05.2010, 00:56 | #8 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Golovastik это одно и тоже. Короче иди все таки читай книжку.
|
27.05.2010, 01:00 | #9 |
Заблокирован
Регистрация: 25.05.2009
Сообщений: 284
|
*(m+1) Понятно что это как и это m[i] является указателем на первый элемент массива, вопрос в том, почему я могу обратится к элементам массива m из-за чего?
|
27.05.2010, 01:10 | #10 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Это описано в стандарте С++ Вот примерно поэтому.
T array[N] == T * const array = new T[N]; тобишь, если грубо, то массив( array ) является просто константным указателем на некую область памяти. Обращение по индексу, эквивалентно : array[ i ] == *( array + i ); И оно же равно( если не ошибаюсь ) : *( static_cast< void* >( array ) + sizeof( T ) * i ); *( (void*)array + sizeof( T ) * i ); Вывод : те же яйца, только сбоку Последний раз редактировалось ozo; 27.05.2010 в 01:17. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический массив | Porsche | Общие вопросы C/C++ | 5 | 26.05.2010 08:04 |
Динамический массив! | Mikhail91 | Общие вопросы C/C++ | 9 | 14.02.2010 14:45 |
Динамический массив | Zhanna5006 | Помощь студентам | 7 | 10.01.2010 14:09 |
Динамический массив. | Mickle | Помощь студентам | 9 | 21.06.2007 20:31 |
Динамический массив | Mickle | Общие вопросы Delphi | 8 | 19.06.2007 06:45 |