Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Вы не можете назначить непосредственно массив после его объявления. В основном ваш код такой же, как
int main()
{
double arr[2][2];
arr = { {1, 2}, {3, 4.5} }; // error
}
. Вы должны либо присвоить значение в объявлении
double arr[2][2] = { {1, 2}, {3, 4.5} };
, либо использовать цикл (или std::copy
) для назначения элементов. Поскольку ваш массив представляется переменной-членом, вы также можете инициализировать его в списке инициализации конструктора:
mcmc_dhs() : data(), cosmohandler(0.3,0.7,0.21,0.8,0.04),
lenseff(), intrvar(),
boundaries{{0,512},{0,512},{0.01,5.},{100.,3000.},{0.1,50}}
{
// rest of ctor implementation
}