在下面的代码中,我想找到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;
答案 0 :(得分:3)
当您在指针上使用sizeof
运算符时,您将获得指针的大小,而不是它指向的大小。您需要跟踪自己分配的内存大小,或使用其他内容,例如std::array
或std::vector
(我推荐)。