В своем коде я использовал много векторов и матриц NTL в качестве членов класса. Большинство переменных могут инициализироваться как вектор нулевой длины или матрица. Но последний (randE), он как-то по умолчанию установлен на вектор с размером = 4444736032 и исправлен.
class MyClass
{
public:
shared_ptr<OtherClass> ptr;
Mat<ZZ_p> A;
Mat<ZZ_p> B;
Mat<ZZ_p> C;
Vec<ZZ_p> D;
Vec<ZZ_p> randA;
Vec<ZZ_p> randB;
Vec<ZZ_p> randC;
ZZ_p randD;
Mat<ZZ_p> E;
Vec<ZZ_p> randE;
MyClass(
const shared_ptr<OtherClass> &ptr;
const Mat<ZZ_p> &A,
const Mat<ZZ_p> &B,
const Mat<ZZ_p> &C)
{
this->ptr = ptr;
this->A = A;
this->B = B;
this->C = C;
}
}
Я попытался добавить инициализацию внутри конструктора, он выдаст ошибку, из-за вектор фиксирован, он не может изменить свою длину.
// Error: SetLength: can't change this vector's length
this->randE = Vec<ZZ_p>();