Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [FAQ] Динамические массивы, Обсуждаем статью для FAQ 
:(
    Опции темы
bsa
Дата 29.1.2008, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(JackYF @ 29.1.2008,  16:04)
У меня тоже, только причина другая. Просмотрел навскидку - всё вроде логично и разделено получилось.

Откуда знаешь? может у меня та же  smile 
PM   Вверх
JackYF
Дата 29.1.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(bsa @  29.1.2008,  19:24 Найти цитируемый пост)
может у меня та же

 smile ты тоже вчера активно "горку" праздновал? smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 29.1.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Ребят, кончай флеймить smile.

bsa, молодец. Подробно посмотреть смогу только завтра...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 29.1.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(archimed7592 @  29.1.2008,  19:51 Найти цитируемый пост)
Ребят, кончай флеймить

один фиг, кроме нас пока эту тему никто не читает  smile 


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bsa
Дата 30.1.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



JackYF, не - я ничего не праздновал. Просто уже опух от компов.  smile 
PM   Вверх
archimed7592
Дата 30.1.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Си:


Цитата(bsa @  26.12.2007,  22:07 Найти цитируемый пост)
do { //на самом деле реализация функции realloc() несколько сложней
   int *t = (int*)calloc(100, sizeof(*p)); //выделение памяти под 100 элементов типа int
   memcpy(t, p, 10*sizeof(*p)); //копирование содержимого предыдущего массива в новый
   free(p); //освобождение памяти от предыдущего массива
   p = t; //присвоение p указателя на новый массив
}while(0);

Эммм... В чём идея применения do..while(0)?

Цитата(bsa @  26.12.2007,  22:07 Найти цитируемый пост)
В принципе, для указанного примера это не критично - операционная система сама подчистит всю память после завершения программы. Но далеко не всегда программа сразу же завершается после того, как динамический массив был использован.

Мне кажется что нужно убрать эту информацию: на начальном этапе новичку не нужно знать этой информации, ибо это может привести к мыслям "а всё равно в конце само по себе освободится", а на продвинутом этапе программист так или иначе сам узнаёт эту информацию без помощи ФАКа smile.

Цитата(bsa @  26.12.2007,  22:07 Найти цитируемый пост)
Хотелось бы отметить опасность широкого использования указателей на внутренние элементы массивов с изменяемым количеством элементов.

Мне не совсем понятен смысл слова "широкого" - "узкое" использование безопасно что ль? smile

Цитата(bsa @  26.12.2007,  22:07 Найти цитируемый пост)
Как нетрудно заметить, сократился объем выделяемой памяти, но зато сократилась и скорость доступа к элементам.

Почему это вдруг скорость сократилась? smile

Цитата(bsa @  26.12.2007,  22:07 Найти цитируемый пост)
    //можно это сделать так:
    //p = (int*)realloc( NULL, n*sizeof(*p) );
    //или так:
    //p = (int*)calloc( n, sizeof(*p) ); //хотя в этом случае будет сделано лишнее - обнуление массива
    .....
    //но можно освободить память и так:
    //realloc(p, 0); // это удобно, когда изменение размера массива делает одна функция
Чуть выше я приводил пару аргументов, почему на мой взгляд этого не должно быть в статье... можно увидеть какие-нибудь контраргументы, которые заставили тебя оставить эти строки? smile

Добавлено через 2 минуты и 54 секунды
Цитата(JackYF @  29.1.2008,  22:01 Найти цитируемый пост)
один фиг, кроме нас пока эту тему никто не читает  smile  

Учитывая то, что она прибита к потолку, я бы хорошенько подумал, прежде чем делать такие выводы smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
bsa
Дата 30.1.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Поправил.
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0908 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.