Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 November 13

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
с кодом будет проще найти ошибку
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
с кодом будет проще найти ошибку
Да, но там такой каскад функций...
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Но попробовать можно
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
хм, могу тебе порекомендовать ещё собраться под thread sanitizer
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
хм, могу тебе порекомендовать ещё собраться под thread sanitizer
Как интерпретировать вывод? Он переменные / адреса показывает, к которым одновременный доступ пытаются получить?
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
ну мне тебе сложно что-то сказать, не видя ничего
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
ну мне тебе сложно что-то сказать, не видя ничего
Не, это общий вопрос
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Как интерпретировать вывод? Он переменные / адреса показывает, к которым одновременный доступ пытаются получить?
это лучше документацию почитатб
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
я все равно тебе лучше не опишу
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Но попробовать можно
так что ?
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
так что ?
Сейчас, несколько минут, немного отвлёкся на ужин
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
приятного аппетита)
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
так что ?
uLongInt uLongInt::operator*(const uLongInt& given) const
{
   uLongInt result{};

   int givlen = given.length();
   if (givlen > number.size())
 result = given * *this;
   else
   {
   if (givlen > 0)
   {
 auto thread_arr = new std::thread[givlen];
 auto results_get = new uLongInt[givlen];
 for (int i = givlen - 1; i >= 0; i--)
 {
       thread_arr[i] = std::thread([&]() {
              uLongInt temp{};
       temp = operator*(given[i]);
       temp.move_arr(i);
       results_get[i] = temp;
       });
 }
 for (int i = 0; i < givlen; i++)
 {
   thread_arr[i].join();
 }
 result = RecursiveSum(results_get, givlen);
   }
   }

   return result;
}
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
uLongInt uLongInt::operator*(const uint64_t& given) const
{
 uLongInt result{};

   int len = number.size();
   for (int i = len - 1; i > 0; i--)
   {
     result = result + multiply(given, number[i]);
     result.move_arr(1);
   }
   result = result + multiply(given, number[0]);
   result.purify();

 return result;
}
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Записывать не записывает, но читать из одного места может
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
а что такое temp.move_arr(i) ?
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
а что такое temp.move_arr(i) ?
Сдвигает на i разрядов
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Ща
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Он не const
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
так подожди, я нигде не вижу локального объявления перменной temp, она выходит у тебя одна на все потоки...
источник