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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мифы о плюсах 
:(
    Опции темы
vinter
Дата 21.10.2013, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

GC нужен для...ээмм.. хз для чего, правда.

GC в C++ нужен для эффективной реализации некоторых алгоритмов. Каких? Не имею понятия, об этом говорил Саттер, в одном из видео. 


--------------------
Мой блог
PM MAIL WWW   Вверх
bsa
Дата 21.10.2013, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(boostcoder @  21.10.2013,  21:15 Найти цитируемый пост)
 так же опробован valgrind, который, к слову, тоже только "голову морочил". не для плюсового кода он, однако.
Просто вы не умеете его использовать  smile 
Он ругается на некоторые внешние библиотеки, например OpenGL и OpenSSL. Чтобы с последним проблем не было, нужно пересобрать OpenSSL с ключиком -DPURIFY. А все остальное можно решить через списки исключений.
PM   Вверх
boostcoder
Дата 22.10.2013, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(bsa @  21.10.2013,  23:29 Найти цитируемый пост)
OpenSSL с ключиком -DPURIFY

ни OpenGL ни OpenSSL в проекте не используются.


Цитата(bsa @  21.10.2013,  23:29 Найти цитируемый пост)
все остальное можно решить через списки исключений.

по правде сказать, я устал заполнять этот список.
валгринд ругался на многое... на смарт указатели, на std/boost bind, на boost::intrusive, на boost::interprocess, на boost::multi_index, и на много чего другого... особенно весело было с лямбдами. он ругался на каждую лямбду которая захватывала this, или любой другой указатель. при этом, в список ислючения приходилось вносить каждую лямбду, которых в проекте наверное тысячи %)
при этом, его перлы были размером в несколько мегабайт, в первые несколько секунд работы программы.

а с AddressSanitizer все гладко - никакого лишнего вывода, все только по существу, и не разу не ошибся ;)

PM WWW   Вверх
azesmcar
Дата 22.10.2013, 10:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



PM   Вверх
Dem_max
Дата 23.10.2013, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 4
Всего: 39



делаете new для одной переменой
Data=new TItem [Count];

А delete делаете для другой переменной
delete []this->Data;

Я наверное поддержу.
Цитата

Миф №2: Люди, которые "программируют на плюсах" более 10 лет, досконально хорошо знают язык программирования С++.



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
ТарасАтавин
Дата 23.11.2013, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

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



Цитата(bsa @  11.10.2013,  00:23 Найти цитируемый пост)
Эх, почему люди, которые ничего не знают и знать не хотят, так настойчиво пытаются навязывать свое мнение другим. 
Это я то ничего не знаю?

Добавлено @ 13:48
Цитата(Dem_max @  23.10.2013,  04:14 Найти цитируемый пост)
А delete делаете для другой переменной
delete []this->Data;
А как ещё? Data - новый блок, this->Data - старый. Один выделяется, другой освобождается. Просто пропущено присваивание this->Data=Data до завершения.


Это сообщение отредактировал(а) ТарасАтавин - 23.11.2013, 13:48


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
Alexeis
Дата 23.11.2013, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(boostcoder @  21.10.2013,  21:15 Найти цитируемый пост)
вот такая вот история. но даже в этой ситуации я не думаю, что в С++ нужен GC. тут виноваты исключительно кривые руки ;)

  Люди не роботы, во время работы отвлекаются переключаются на что-то, пишется некоторый код, потом через месяц переделывается и т.д. В таких условиях утечки делаются очень легко, а бывает, что повторное удаление указателей. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ТарасАтавин
Дата 24.11.2013, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

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



Цитата(Alexeis @  23.11.2013,  17:53 Найти цитируемый пост)
В таких условиях утечки делаются очень легко, а бывает, что повторное удаление указателей.  
И в таких условиях они не делаются даже специально.

Добавлено через 5 минут и 46 секунд
Ну вернулся ты через год к старому исходнику. И что? Добавишь new, а delete оставишь ещё на год?  А может ещё после каждого движения мыши, щелчка, даблокликА, нажатия на кею, или отпускания её до следующего события месяца полтора проходит? В таком режиме вообще не возможно что либо сделать, а в нормально сразу и new, и парный delete набираются за несколько секунд и по одному решению, что исключает утечки. Единственный возможный их источник - пропуск присваивания, который ни каким инструментом не отловишь, их только на основе замысла.


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
Amp
Дата 24.11.2013, 18:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Ты действительно считаешь, что new и парный delete спасет от утечек? Или просто прикидываешься?
PM MAIL   Вверх
ТарасАтавин
Дата 25.11.2013, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

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



Цитата(Amp @  24.11.2013,  18:27 Найти цитируемый пост)
Ты действительно считаешь, что new и парный delete спасет от утечек? Или просто прикидываешься? 
А разве нет? 
Код
int *a;
a=new int [1024];
delete [] a;
. Откуда утечка?

Это сообщение отредактировал(а) ТарасАтавин - 25.11.2013, 08:57


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
NoviceF
Дата 25.11.2013, 09:13 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: 2



Код

int *a = NULL;
a=new int [1024];

// ...
// как пишет Мэйрс.. "изысканный код, вобравший многолетний опыт работы" и т.п.
// ...

throw std::runtime_error("вариант 1");

try
{
    DoSome();
}
catch( ... )
{
    return 0; // вариант 2
}

int x = 0;

if (x == 0)
    return 1; // вариант 3

delete [] a;


То, что пришло в голову.
PM MAIL   Вверх
baldina
Дата 25.11.2013, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 32
Всего: 101



он не прикидывается, у него 10 лет программирования за плечами  smile 
PM MAIL   Вверх
ТарасАтавин
Дата 25.11.2013, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

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



Цитата(NoviceF @  25.11.2013,  09:13 Найти цитируемый пост)
f (x == 0)
    return 1; // вариант 3
delete [] a;
Что за фигня? delete должен быть до завершения, иначе пара разбита.



--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
NoviceF
Дата 25.11.2013, 16:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: 2



Цитата(ТарасАтавин @  25.11.2013,  16:56 Найти цитируемый пост)
Что за фигня? delete должен быть до завершения, иначе пара разбита.

А.. тебя только это место смутило? smile
PM MAIL   Вверх
boostcoder
Дата 7.12.2013, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(Alexeis @  23.11.2013,  17:53 Найти цитируемый пост)
Люди не роботы

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


Это сообщение отредактировал(а) boostcoder - 7.12.2013, 12:42
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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