Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2015, 14:44   #1
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию Странное объявление массива

Скачал одну программку, правда на C#. В ней вот такое объявление массива:
Код:
double *mas = new double [n+2, n+1];
x = mas[i, j];
Дело в том, что и С++ не выдаёт ошибок. Впервые с этим сталкиваюсь. В чём тут фишка? Рылся в инете, ничего внятного не нашел.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.02.2015, 16:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в Шарпее можно писать а-ля паскально: [Бла бла, бла бла] для массива.
Не зря же его разрабатывал один из лучших разработчиков Delphi
Delphi рулит даже внутри Cи
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2015, 16:21   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А в Шарпее можно писать а-ля паскально: [Бла бла, бла бла] для массива.
Не зря же его разрабатывал один из лучших разработчиков Delphi
Delphi рулит даже внутри Cи
Тоесть, по сути это матрица вида matrix[i][j]? И объявлять её нужно как double **mas = new double *[N];? Если я правильно понял.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.02.2015, 16:35   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Дело в том, что и С++ не выдаёт ошибок. Впервые с этим сталкиваюсь. В чём тут фишка? Рылся в инете, ничего внятного не нашел.
http://en.wikipedia.org/wiki/Comma_operator
waleri вне форума Ответить с цитированием
Старый 06.02.2015, 17:32   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

То, что он является разделителем последовательности, это и ежу понятно. Меня интересует, почему компиль не ругается, при его исользовании в объявлении массива. К стати и результат выдаёт неверный. Исправил на

Код:
double **mas = new double *[x.row];
for(int i=0; i < x.row; i++) mas[i] = new double[x.col];
всё прекрасно заработало.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.02.2015, 17:39   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Меня интересует, почему компиль не ругается, при его исользовании в объявлении массива
тебе же говорят, man operator comma
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 06.02.2015, 17:47   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
тебе же говорят, man operator comma
Спасибо. Разобрался. В выражении a[i, j] i просто отбрасывается за ненадобностью.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.02.2015, 17:54   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
по сути это матрица вида matrix[i][j]?
Она самая.
Цитата:
объявлять её нужно как double **mas = new double *[N];?
Ну по идее да .
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объявление динамического массива katena88 Общие вопросы C/C++ 45 19.06.2012 21:53
Объявление динамического двумерного массива kineziz Общие вопросы C/C++ 4 27.05.2012 15:40
Объявление размерности массива. iCaesy Паскаль, Turbo Pascal, PascalABC.NET 2 22.10.2011 14:42
объявление массива в VBA Cannibal Помощь студентам 0 14.04.2011 08:23
объявление массива Crasty Помощь студентам 7 05.11.2008 17:18