170 похожих чатов

Доброе утро, по какой причине при выполнении VirtualFree может не

освобождаться память? Через дебагер проверяю что код доходит до момента освобождения памяти, но сама память по итогу не освобождается

15 ответов

9 просмотров

GetLastError ?

А как проверяется факт освобождения памяти?)

Oleks- Автор вопроса
Vlad Doc
GetLastError ?

Я чет не подумал) Выдает ошибку 5, т.е. нехватка прав, только от чего это может быть я немного не понимаю

Oleks- Автор вопроса
Aleksander Spichak
А как проверяется факт освобождения памяти?)

через процессхакер смотрю сколько памяти выделено по адресу

Вы проверяете if(VirtualFree()==TRUE) или if(VirtualFree()!=FALSE)?

Oleks- Автор вопроса
S.E.
Вы проверяете if(VirtualFree()==TRUE) или if(Virtu...

вывожу в консоль возвращаемое значение.

Vlad Doc
Разница?)

у майков в документации написано: Return value If the function succeeds, the return value is nonzero. If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError. nonzero это не 1. это может быть и 100, и 193443 TRUE это 1 вы видите разницу между if(234423==1) и if(234423!=0)?

Oleks- Автор вопроса
Vlad Doc
Не твоя память мб?

Выделение памяти по адресу: LPVOID buffer; buffer = VirtualAlloc(NULL, handleInfoSize, MEM_COMMIT, PAGE_READWRITE); Освобождение: VirtualFree(buffer, 0, MEM_RELEASE); В память записывается итог выполнения NtQuerySystemInformation

Vlad Doc
Разница?)

подробнее можете почитать тут.

Oleks- Автор вопроса
Oleks
Я чет не подумал) Выдает ошибку 5, т.е. нехватка п...

Ток что проверил эта ошибка не имеет отношения к вызову VirtualFree

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта