сбой программы при выделении и удалении lapack_complex_double * - PullRequest
0 голосов
/ 27 июня 2019
OS: Windows;
IDE: Codelite;
Language: C++;
Package: Lapacke;

Вот моя функция

void Math::foo(int n)
{
    lapack_complex_double* A = new lapack_complex_double[n];

    for (int i=0; i<n; i++) A[i] = {0.0, 0.0};

    delete A;
    return;
}

Я вызываю ее в новом потоке.

Math math();
int num=64;
std::thread trd(&Math::foo, &math, num);
trd.detach();

После 2 или 3 раза вызова программа вылетает.Обратите внимание, что если я изменю lapack_complex_double на int или double, это будет работать нормально.Что не так с кодом?

Дополнительная информация: он работает, когда я запускаю его через IDE (codelite), но когда я запускаю свою программу из проводника Windows с помощью двойного щелчка, он показывает такое странное поведение ипосле этого Windows работает медленно и зависает, и я должен перезапустить Windows.

...