Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 11

Освобождение памяти в многопоточной функции

19.10.2019, 20:52. Показов 3564. Ответов 20

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
void DispThreadsNT::SetCallDZ (MESDZ* pMesDZ,     
                               LPVOID pData,     
                               int nLenData,     
                               DWORD dwPause)     
{
    MESCALL MesCall;
    
    CopyMemory (&(MesCall.MesDZ), pMesDZ, sizeof (MESDZ));
    MesCall.nLenData = 0;
    MesCall.pData = NULL;
 
    MesCall.dwPause = dwPause;
    
    
    if (nLenData != 0 && pData != NULL)
    {
       
        MesCall.pData = new BYTE [nLenData];
        
        if (MesCall.pData != NULL)
        {
            
            CopyMemory (MesCall.pData, pData, nLenData);
            MesCall.nLenData = nLenData;
        }
        else
            MesCall.pData = NULL;
    }
    
    
    MESCALL* pMesCallData = new MESCALL;
    if (pMesCallData)
 
 
        CopyMemory (pMesCallData, &MesCall, sizeof(MESCALL));
 
    
   if (pMesDZ->wParam == 0xFFFF)
       QApplication::sendEvent(this, new UserEvent(MES_CALL_DZ,0,(LPARAM)pMesCallData));
   else
       postEvent(this, new UserEvent(MES_CALL_DZ,0,(LPARAM)pMesCallData));
 
}
 
Помогите, пожалуйста, начинающему программисту. При работе функции не освобождается память, приложение ест оперативку. 
 
Объект MesCall.pData создается, но не удаляется. Не соображу как правильно его удалить, чтобы многотопочность не пострадала.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2019, 20:52
Ответы с готовыми решениями:

Указатели. Освобождение памяти в функции
Здравствуйте, разбираю учебный код, к сожалению, нет к нему комментария на нужный мне вопрос: В функцию передается значение по указателю,...

Как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение
Здравствуйте! Подскажите, как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение. ...

Резервирование памяти/освобождение памяти для трехмерного массива
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...

20
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 11
21.10.2019, 22:40  [ТС]
Студворк — интернет-сервис помощи студентам
Супер! Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2019, 22:40

Освобождение памяти в отдельной функции
#include<stdio.h> #include<stdlib.h> void delmem(int ***a,int **q,int **s,int n); void main() { int **a=0,*q,*s; int n,m; ...

Освобождение памяти, выделенной под переменную во внутренней функции
Подскажите, какая команда служит для освобождения памяти, заданной под переменную в matlab во встроенной функции? clear удаляет ссылку на...

Освобождение памяти
Подскажите, пожалуйста, я ещё зелёный в C#. Есть у меня класс Form1, при определённом событии в нём я создаю екземпляр класса Sposob и...

Освобождение памяти
Собственно есть простенький класс class Human { public: Human ( ); void ptintHuman(); private: static long...

Освобождение памяти
Есть класс, в котором я выделяю память с помощью new. В деструкторе класса я с помощью delete освобождаю память, но у меня вылетает ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru