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.