вопрос указателей openmp - PullRequest
0 голосов
/ 07 апреля 2011

Я написал программу на C, которую нужно распараллелить, используя openmp.Я объявил закрытые и общие переменные, но в начале кода, когда я вызываю некоторые процедуры для освобождения списков, я получаю

error for object 0x1000c1e20: pointer being freed was not allocated

      destroy_t_value(head_t1_values);
      t_value_delete(&head_t1_values, 0);
      destroy_chi_value(head_chi1_values);
      chi_value_delete(&head_chi1_values, 0);

Эти переменные являются частными Код работает нормально без openmp

1 Ответ

2 голосов
/ 07 апреля 2011

В этом проблема: «Перед входом в параллельную часть они выделены и установлены в NULL»

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

Вам нужно выделить, затем использовать их, затем освободить (т.е. удалить), а затем установить в NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...