C освободить всю выделенную память одним вызовом free() ⇐ Linux
C освободить всю выделенную память одним вызовом free()
Я работаю с функцией C freeMemory(), которая получает на вход ряд указателей и освобождает занятую ими память следующим образом:
void freeMemory(char **parallel_commands, struct command *comands[], size_t num_parallel_commands) { бесплатно (parallel_commands); for (size_t i = 0; я num_argumentos != 0; cmd++) CleanCommand (CMD); бесплатно (команды [я]); } } Можно предположить, что внутри функции cleanCommand() есть функция free (эквивалент вызова free()). Поскольку в функции есть вложенные циклы и на каждой итерации free приходится вызывать операционную систему для освобождения необходимой памяти, этот процесс становится неэффективным.
Есть ли способ распараллелить освобождение памяти внутри функции freeMemory()? Или есть какой-то способ освободить всю выделенную память одним вызовом (зная все указатели на соответствующие участки памяти)?
Я работаю с функцией C freeMemory(), которая получает на вход ряд указателей и освобождает занятую ими память следующим образом:
void freeMemory(char **parallel_commands, struct command *comands[], size_t num_parallel_commands) { бесплатно (parallel_commands); for (size_t i = 0; я num_argumentos != 0; cmd++) CleanCommand (CMD); бесплатно (команды [я]); } } Можно предположить, что внутри функции cleanCommand() есть функция free (эквивалент вызова free()). Поскольку в функции есть вложенные циклы и на каждой итерации free приходится вызывать операционную систему для освобождения необходимой памяти, этот процесс становится неэффективным.
Есть ли способ распараллелить освобождение памяти внутри функции freeMemory()? Или есть какой-то способ освободить всю выделенную память одним вызовом (зная все указатели на соответствующие участки памяти)?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу освободить память, выделенную внешними вызовами C в Python?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-