我是 C++ 新手。
class ProjectionValue{
public:
int angleLength;
int detectorIndex_xLength;
int detectorIndex_yLength;
double ***matrix;
ProjectionValue(int angleLength, int detectorIndex_xLength, int detectorIndex_yLength);
~ProjectionValue();
};
我在我的主类中声明了 ProjectionValue 类(我的类)的 3d 矩阵。
ProjectionValue*** A_projection [10][10][5];
for(int x=0; x< A->Tomo->object3d->Nx; x++)
{
for(int y=0; y< A->Tomo->object3d->Ny; y++)
{
for(int z=0; z< A->Tomo->object3d->Nz; z++)
{
for( int kk=0; kk<11; kk++)
{
for(int m=0; m < A->Tomo->detector->Nx; m++ )
{
for(int n=0; n < A->Tomo->detector->Ny; n++ )
{
(**A_projection[x][y][z])->matrix[kk][m][n] = A->Tomo->ICD_projection(*A->Tomo->xraysource->Source,*A->Tomo->detector->GetCoordinates(m,n), initial_object, x, y, z);
}
}
A->Tomo->xraysource->RotateXRaySource(-5);
A->Tomo->detector->RotateDetector(-5);
}
}
}
}
我认为“Form_Solution.exe 中发生了“System.AccessViolationException”类型的未处理异常”。是这里:
(**A_projection[x][y][z])->matrix[kk][m][n] = A->Tomo->ICD_projection(*A->Tomo->xraysource->Source,*A->Tomo->detector->GetCoordinates(m,n), initial_object, x, y, z);
我可以为这个问题做些什么,我的 3d 类矩阵的声明有什么问题吗?矩阵的分配内存是否必要,我该怎么做?