初始化二维动态数组 C++ 时读取访问冲突

read access violation when initializing 2d dynamic array c++

我正在为 class(已提交)做一个项目,但是当我初始化 int 二维动态数组时读取访问冲突仍然困扰着我,我不知道是什么原因造成的。

class kMeans
{
public:
    //xyCoord struct
    struct xyCoord
    {
        int Label;
        int xCoordinate;
        int yCoordinate;
    };

    //variables
    int K;
    xyCoord *Kcentroids;
    int numPts;
    aPoint *pointSet;
    int numRow;
    int numCol;
    int **imageArray = NULL;
    int changeLabel;

    //constructor
    kMeans(int clusterNum, int numPoints, int row, int col)
    {
        //initializes the row and column values
        numCol = col;
        numRow = row;

        //Allocate the row and column as the size of the 2D array
        imageArray = new int*[row];
        for (int i = 0; i < row; i++)
        {
            imageArray[i] = new int[col];
        }

        //initializes the 2D array to contain all 0s
        for (int i = 0; i < row - 1; i++)
        {
            for (int j = 0; i < col - 1; j++)
            {
                imageArray[i][j] = 0;   //read access violation occurs here
            }
        }

        //Allocate numPoints as the size of the array
        pointSet = new aPoint[numPoints];
        numPts = numPoints;

        //Allocate clusterNum as the size of the array
        Kcentroids = new xyCoord[clusterNum];
        K = clusterNum;

        //Initialize the labels for each Kcenteroid
        for (int i = 0; i < K; i++)
        {
            Kcentroids[i].Label = i + 1;
        }
    }

这个错误之前没有出现,但是当我决定在提交之前再次运行程序时,出现了读取访问冲突,所以我不确定是什么原因造成的。

改变这个:

for (int j = 0; i < col - 1; j++)

对此:

for (int j = 0; j < col - 1; j++)

因为您想检查 j 的条件,而不是 i