Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: stepic.org. Программирование на С++. Динамическая память. Задача.  (Прочитано 1729 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Читаю курс на stepic.org по С++. Знатоки С++ посмотрите задачу.

(Нажмите, чтобы показать/скрыть)

Даю такой ответ:

(Нажмите, чтобы показать/скрыть)

Не верен. Что я упустил?

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5738
  • Все по палатам!
    • Просмотр профиля
На быстрый взгляд - при добавлении каждого символа выделять память нехорошо, надо выделять буфер на какой-то объем (типа 64) и добавлять также, если не хватило места. Нет обработки ошибок.
Извините, я все еще учусь

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3266
    • Просмотр профиля
Я тоже не вникал глубоко, но меня удивил "new char[0]".
Это же означает, что память не выделяется.
И вообще можно выделять сразу целую страницу, 4096.
Пётр.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
переделал до вида

(Нажмите, чтобы показать/скрыть)

и понял, что ошибка скорее всего не в том, что выделяю память не страницами т.п. (т.к. это все-таки ученическое задание), а в месте, где копирую старый массив и использую sizeof(). В переписанном варианте уже оно не используется и правильно. Сейчас проверю на stepic, всего лишь убрать sizeof().

Пользователь решил продолжить мысль [time]25 Октябрь 2014, 18:40:54[/time]:
убрать sizeof() было мало, а полный код представленный только что подошел. Видимо я не выполнил условие по ограничению в 256 МБ, в старом коде не было никаких ограничений. В новом максимум 100*4096.

Спасибо за помощь :)
« Последнее редактирование: 25 Октября 2014, 12:41:08 от thunderamur »

 

Страница сгенерирована за 0.019 секунд. Запросов: 22.