Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Динамическое создание двумерного массива  (Прочитано 53468 раз)
0 Пользователей и 8 Гостей смотрят эту тему.
Anonymous
Гость
« Ответ #30 : 09-11-2003 17:03 » 

Цитата: Fatal Error

Гром <<[/b] Да, я не обижаюсь, просто есть люди которые по теме не говорят, а ники обсуждать любят, флеймеры короче, я обычно их топики сразу удаляю у себя в форумах.


И не обижайся, мы не такие, никто твой ник не обсуждал и не осуждал - эт мы с Громом прикололись сам на сам, он спросил - я ответил, всё ровно. Ничего личного. Если таки усматриваешь, что-то обидное - то приношу извинения, публично.

Джон
Записан
Sashok
Молодой специалист

us
Offline Offline
Пол: Мужской

« Ответ #31 : 09-11-2003 18:40 » 

Цитата: CrazyRabbit
учился потом сам по книгам.
Так вот, в моих книгах по ANSI C сказано, например :
Цитата
Идентификатор. Последовательность букв, цифр и символв подчеркивания, начинающаяся с  буквы или символа подчеркивания, считается идентификатором языка Си.

Это ближайшая книга Подбельского и Фомина Программирование на языке Си
Сам ворос.
В какой реализации языка константа (целая десятичная, в данном случае) может использоваться в качестве идентификатора?
Цитата: CrazyRabbit
Можно, просто послать  Отлично , где об этом пишут.
Например, в Visual C++ 6.0  Жжешь
Например Turbo C 3.0 Жжешь
Например, gcc (версию не помню, нет сейчас Линукса под рукой, если очень нужно - посмотрю) Жжешь
 Отлично  Отлично  Отлично

А писать об этом будут у нас в клубе. Как только напишу, пришлю ссылку персонально!


Цитата: Serega
Цитата: Sashok
А уж если кому напишешь 3
  • [/b] вместо x[3], так вообще говорят, что такого не может быть.
На самом деле так писать не стоит, ничего хорошего по этому поводу компилятор не скажет, это не ассемблер, где такое допустимо
Но и ничего особо плохого тоже не скажет! Жжешь

А теперь всерьез, уважаемые критики.
Запись типа a компилятор преобразует в упомянутое ранее в данном форуме *(a+b). Что эквивалентно записи *(b+а). А в это же самое выражение, как легко догадаться, будет преобразовано и b[a]. А берется при этом значение константы (место в памяти!) или содержимое переменной (другое место в памяти!) - асболютно неважно. Вот и все.

Кстати, обсуждавшийся здесь вопрос, что более эффективно - a[5][2] или *(*(a+5)+2) - с точки зрения исполнения программы не имеет смысла: они одинаковы.
Записан

Если бы окружающие нас объекты содержали столько же ошибок, сколько программы, цивилизация обрушилась бы от первого порыва ветра...
Serega
Гость
« Ответ #32 : 09-11-2003 21:05 » 

Действительно, я думал что это operator[] для встроенных типов, постоянно забываю о совместимости с C
Записан
CrazyRabbit
Участник

il
Offline Offline

« Ответ #33 : 09-11-2003 21:23 » 

Sashok, Спасибо! Дошло наконец-то :oops: .  Я понял! :idea:
И не критика это была Ага,  а  тяга к знаниям  :!:  
За ссылку , заарнее спасибо.  Отлично
Записан
Fatal Error
Гость
« Ответ #34 : 12-11-2003 06:23 » 

Гром <<[/b] http://www.key.ru/phorum2/index.php - туда есть халявный доступ Ага

Усё мне всё ясно, спасибо.

P.S.: забейте я не обидчивый, но по теме тоже полезно говорить 8)
Записан
Xeysan
Гость
« Ответ #35 : 12-11-2003 06:40 » 

Цитата

Кстати, обсуждавшийся здесь вопрос, что более эффективно - a[5][2] или *(*(a+5)+2) - с точки зрения исполнения программы не имеет смысла: они одинаковы.

Обсуждалось это с точки зрения программиста  Отлично.
Записан
Sashok
Молодой специалист

us
Offline Offline
Пол: Мужской

« Ответ #36 : 12-11-2003 07:37 » 

А, тогда конечно - [][]. Впрочем, возможно, кому-то больше по душе *(*(+)+) Отлично
Записан

Если бы окружающие нас объекты содержали столько же ошибок, сколько программы, цивилизация обрушилась бы от первого порыва ветра...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #37 : 12-11-2003 13:25 » 

Я немного поздновато, но.

Может быть я оторвался от жизни, но двухмерный массив я юзаю так:



int *A = new int[xmax*ymax];

....
int x,y;
....
A[x*ymax + y] = 7;
....



 :?
Записан

Sashok
Молодой специалист

us
Offline Offline
Пол: Мужской

« Ответ #38 : 12-11-2003 16:17 » 

Алексей1153, то есть ты нарочно создаешь его одномерным, как в развертке ЭЛТ или по примеру устройства видео памяти (вопрос риторический  Жжешь )?
В таком случае очень советую тебе просмотреть подробно все сообщения этой темы, просто чтобы составить представление о реальном устройстве двумерных и вообще многомерных массивов. Возникнут вопросы - пиши.
Записан

Если бы окружающие нас объекты содержали столько же ошибок, сколько программы, цивилизация обрушилась бы от первого порыва ветра...
grozny
Гость
« Ответ #39 : 12-11-2003 19:18 » 

Цитата: Алексей1153
Я немного поздновато, но.

Может быть я оторвался от жизни, но двухмерный массив я юзаю так:



int *A = new int[xmax*ymax];

....
int x,y;
....
A[x*ymax + y] = 7;
....


Именно. Я тоже предпочитаю таким образом. Потому что вечно забываю, что от какого индекса как ложится в память.   Вот такой я вот
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #40 : 12-11-2003 20:20 » 

Я тоже Улыбаюсь
Самое прикольное, что чаще всего по той же причине, что и грозный.
Чаще всего матрица передается ас ис, т.е. як було.

Дык мне проще просто memcpy сделать, а передача данных идет подряд рядами - ну по сети Улыбаюсь

Воот  Ага
Записан

А птичку нашу прошу не обижать!!!
ixania
Гость
« Ответ #41 : 14-11-2003 03:42 » 

Во во, и память освобождается одним delete
« Последнее редактирование: 13-04-2006 20:36 от Алексей1153 » Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines