矩阵大小始终为8

时间:2015-09-19 10:02:18

标签: c++ multidimensional-array

在下面的代码中,我想找到2d数组(矩阵)的大小,但是,当我尝试这样做时,尽管我在测试之前声明了矩阵的大小,但它总是输出1。 factorMatrix和factorMatrix [0]的大小与8相同。任何想法可能导致这种情况?感谢。

factorMatrix = new int* [3];
    for(i=0; i<3; i++)
    {
        /**/
        factorMatrix[i] = new int [1];
    }   

factorCountMatrix = new int* [3];
    for(i=0; i<3; i++)
    {
        /**/
        factorCountMatrix[i] = new int [1];
    }

factorMatrix[0][0] = 2;
factorCountMatrix[0][0]= 0;

factorMatrix[1][0] = 3;
factorCountMatrix[1][0]= 0;

factorMatrix[2][0] = 5;
factorCountMatrix[2][0]= 0;

//test = checkFactorMatrix(3);
test = (sizeof(factorCountMatrix) / sizeof(factorCountMatrix[0]));
cout <<  test << endl << endl;

1 个答案:

答案 0 :(得分:3)

当您在指针上使用sizeof运算符时,您将获得指针的大小,而不是它指向的大小。您需要跟踪自己分配的内存大小,或使用其他内容,例如std::arraystd::vector(我推荐)。