HI guys!!!

Have a problem with 3d array memory allocation in next code:

//////////////////////////////////////////////////////////
class NeuronNet(T, const uint layersNum)
{
        T[]                                     _inputs;
        T[][layersNum - 2]      _hidden;
        T[]                                     _outputs;
        T[]                                     _target;

        //waights [col][row][dimension]
        T[][][layersNum - 1] _waightsArray;

        this(in uint[] nodesArr)
        {
                //values init
                _inputs = new T[nodesArr[0]];
                _outputs = new T[nodesArr[$-1]];

                for(uint j = 0; j < layersNum - 2; j++)
                {
                        _hidden[][j] = new T[nodesArr[j + 1]];
                }
                //waights init
                for(uint i = 0; i < layersNum - 1; i++)
                {
                        _waightsArray[][][i] = new T[][nodesArr[1+i]];
                        for(uint ii = 0; ii < nodesArr[1+i]; ii++)
                        {
                                _waightsArray[][ii][i] = new T[nodesArr[i]];
                        }
                }
        }
}
//////////////////////////////////////////////////////////

debuger shows array range boundary error in line
                                _waightsArray[][ii][i] = new T[nodesArr[i]];

Help me please if any one knows


Reply via email to