Размерность двумерного массива c

RPI.su — самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected] . Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.

У меня проблема с программой на C ++, включающей двухмерные массивы.

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

Я подумал, что мог бы сделать что-то вроде этого:

но я не знаю, как узнать размер таблицы (строк и столбцов) для моих циклов for.

У кого-нибудь есть идеи, как это сделать?

Это часть кода, который я тестировал, но я не получаю правильное количество столбцов и строк:

Я ценю любую помощь и, пожалуйста, имейте в виду, что я новичок в C ++.

Решение

Не существует способа «найти» размер того, на что указывает указатель в C или C ++. Указатель — это просто значение адреса. Вы должны были бы передать размер — или в вашем случае количество строк или столбцов в addTables функция — как:

Читайте также  Программы для работы с postgresql

Вот почему комментаторы предлагают что-то вроде vector , C ++ предлагает лучшие типы данных, чем необработанные указатели — во-первых, вектор отслеживает количество элементов, которые он содержит, поэтому его не нужно передавать как отдельные параметры.

В вашем примере программы sizeof Оператор возвращает размер типа предоставленной переменной. Таким образом, для sizeof(tablePtr) он возвращает размер int** что, вероятно, будет 4 или 8 байтов. sizeof операция оценивается во время компиляции, поэтому нет способа узнать, насколько большой буфер tablePtr указывает на это.

не могу понять как работать с двумерным массивом используя Array.Resize(). по заданию нельзя использовать что либо другое кроме массивов

1 ответ 1

Воплотим в реальность комментарий про "изрезанный массив". Напишите пользовательский класс, подобный этому:

Если нельзя использовать классы, можете метод Resize модернизировать вот до такой степени:

Ссылка на основную публикацию
Adblock
detector