OpenMP выделяет память и освобождает все после

Openmp выделяет память и освобождает всю память? Потому что я запустил valgrind и освободил все мои списки. Все, что я не использовал, я освободил.

==11442== HEAP SUMMARY:
==11442==     in use at exit: 192 bytes in 1 blocks
==11442==   total heap usage: 2,001 allocs, 2,000 frees, 2,917,280 bytes allocated
==11442== 
==11442== LEAK SUMMARY:
==11442==    definitely lost: 0 bytes in 0 blocks
==11442==    indirectly lost: 0 bytes in 0 blocks
==11442==      possibly lost: 0 bytes in 0 blocks
==11442==    still reachable: 192 bytes in 1 blocks
==11442==         suppressed: 0 bytes in 0 blocks

Если нет, то почему все еще может быть утечка памяти в одном блоке?

Это мой код:

#include 
#include 
#include 
/*check definition of _OPENMP*/
#ifdef _OPENMP
#include 
#endif 

#define RMAX 10000000

/*Global variables*/
int arraySizeGlobal;
int numberOfthreads;
int *aux;

/*Functions*/
void sort(int *a);
void sort2(int *a, int lo, int hi);
void merge(int *a, int lo, int mid, int hi);
void Generate_list(int a[], int n);
void printlist(int *array);

int main(int argc, char* argv[])
{
numberOfthreads = strtol(argv[1], NULL, 10);
arraySizeGlobal = strtol(argv[2], NULL, 10);
////////////////////////////////
int *array;
array = malloc(arraySizeGlobal * sizeof(int));
Generate_list(array,arraySizeGlobal);

printf("=====================\n");
printf("////Starting list////\n");
printf("=====================\n");
printlist(array);

sort(array);

printf("=====================\n");
printf("/////Sorted list/////\n");
printf("=====================\n");
printlist(array);

free(array);

return 0;
}

void sort(int *a)
{
aux = malloc(arraySizeGlobal * sizeof(int)); // Allocate space just once.
//#pragma omp parallel num_threads(numberOfthreads)
//#pragma omp single nowait
sort2(a, 0, arraySizeGlobal - 1);
free(aux);
}
void sort2(int *a, int lo, int hi)
{   // Sort a[lo..hi].
if (hi 

Ответы на вопрос(1)

Ваш ответ на вопрос