На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела FAQ в группе разделов С++.
1. Раздел FAQ предназначен для публикации готовых статей.
2. Здесь нельзя задавать вопросы, для этого существуют соответствующие разделы:
Чистый С++
Visual C++ / MFC / WTL / WinApi
Borland C++ Builder
COM / DCOM / ActiveX / ATL
Сопутствующие вопросы
3. Внимание, все темы и сообщения в разделе премодерируются. Любое сообщение или тема будут видны остальным участникам только после одобрения модератора.
Модераторы: B.V., Qraizer
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Утечка памяти в программах на языке Си, Способ нахождения
    Цитата gena_dj @
    Пямять запрашивается из кучи процесса.
    Во-первых, иногда между кучей процесса и функциями вроде malloc стоит посредник. Во-вторых, выделение памяти - не атомарная операция. Если уж непотокобезопасна операция простого увеличения переменной вроде:
    ExpandedWrap disabled
      a += 2;
    , то гораздо более сложная процедура выделения памяти - тем более. Поэтому если в менеджере памяти не озадачились синхронизацией - придется делать ее ручками.
    Цитата gena_dj @
    Это ничего не изменит.
    Это изменит многое. см. выше.
    Во имя Ctrl, Alt и святаго Del, Enter!

    Основам программирования не обучаю. Не интересно.
      trainer,
      это Вы зря.
      Все виндовые xAlloc() тщательно тестируются и полностью потокобезопасны. Не будет такого, чтобы двум одновременным потокам, вызывающим xAlloc() вернулся один и тот же указатель. Даже в случае многопроцессорности.
        Цитата gena_dj @
        Все виндовые xAlloc()
        За пределами Microsoft жизни не существует?
        Во имя Ctrl, Alt и святаго Del, Enter!

        Основам программирования не обучаю. Не интересно.
          Сущствует конечно,
          но на предыдущей странице почему-то фигурирует EnterCriticalSection() и LeaveCriticalSection()
          Про выделение памяти за пределами Microsoft не могу ничего сказать.
              Цитата gena_dj @
              Не будет такого, чтобы двум одновременным потокам, вызывающим xAlloc() вернулся один и тот же указатель. Даже в случае многопроцессорности.


              В случае, если линкуемся с многопоточным рантаймом. Если же слинкуемся с обычным - здравствуй, лотерея.

              Сообщения были разделены в тему "Spam"
              Windows as usual - my "wau" Windows experience
                Как раз про утечку памяти рассказывают почти исключительно адепты решётки и ей подобных. Наталкивает на мысль, что именно решётка и необходима, чтоб утечку организовать. Выделение и парное к нему освобождение памяти всегда делается в связке: написал закорючку для выделения, сразу учитываешь в освобождении. Как можно умудриться напороться на утечку? Хотя, я разок справился. Но на указателях, инкапуслированных в самую глубину. На плюсах. Странно было, что я в тот раз клаву с мышью не перепутал. Исправил после первого же теста. Без логов, профайлеров, с наглухо отвалившимся дебагером.
                Сообщение отредактировано: Ирокез -
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script Execution time: 0,0818 ]   [ 16 queries used ]   [ Generated: 15.08.20, 04:58 GMT ]