Размер 2d массива в C ++ - PullRequest
       1

Размер 2d массива в C ++

0 голосов
/ 19 октября 2019

Я решаю проблемы с онлайн-судьей, такими как Leetcode, и мне интересно, возможно ли получить размер двумерного массива, заданного int ** A. Рассмотрим функцию

 int help(int** A){
       int rows = sizeof(A)/sizeof(A[0]);
       int columns = sizeof(A[0])/sizeof(A[0][0]);
}

Но я не получаю правильные значения строк и столбцов. Есть ли способ получить размеры двумерного массива, если у меня только int ** A. Тот же вопрос для char ** A. Я знаю, что вопрос плохо сформулирован, но я новичок в C. Спасибо.

1 Ответ

1 голос
/ 19 октября 2019

Нет, это невозможно.

В выделенной памяти нет ничего, что указывало бы, где оно начинается и заканчивается. Для двумерных массивов нет даже гарантии, что память непрерывна.

**A не содержит никаких данных о себе - всю информацию о массиве должен отслеживать программист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...