sizeof()
возвращает только размер указателя.
Существует только один способ получить размер массива.Создайте класс / структуру, которая обернет необработанный массив , а также содержит его размер.
К счастью, вам не нужно создавать такую структуру, потому что с C ++ 11 вы можете использовать std::array
, который делает это для вас и именно то, что вам нужно.Вы можете переписать ваш пример следующим образом:
std::array<std::array<float, 3>, 3> square; // size 3x3
for(size_t i = 0; i < square.size(); ++i)
{
for(size_t j = 0; j < square[0].size(); ++j)
square[i][j] = i;
}
Метод size()
дает вам размер внутреннего массива.
Надеюсь, он вам поможет.