передать двумерный массив через функцию обратно
В смысле вернуть из функции или как?
Arcor, вернуть массив не получится. Можно вернуть обёртку — std::vector (динамический массив), std::array (обёртка над статическим массивом) (стандарт C++0x).
Arcor, замедляется в несколько раз по сравнению с чем?
не зарезервировать сразу всю нужную память, а выделять её инкрементно — замедляется, потому что освобождение и выделение памяти, а также копирование — дорогая операция
Nekto, указатель — не массив. Вы можете вернуть полноценный массив из функции, самостоятельный, автономный массив?
Как вернуть матрицу из функции? Я делаю программу, которая постоянно отправляет матрицу в функцию, а также постоянно нуждается в возвращении матрицы из функции, я вроде знаю, как отправить матрицу в функцию (с двойными указателями), но каждый раз, когда я пытаюсь вызвать функция, которая говорит, что это несовместимый тип. Вот пример функции, которую я использую:
И вот часть, которая призывает к этой функции:
В этой последней части мне нужна ваша помощь, поскольку я не знаю, как присвоить матрице, полученной из функции, переменную m, я не знаю, должен ли она быть в виде пуанта, двойного указателя, общая матрица и т. д.
Буду признателен, если кто-нибудь покажет мне, как это сделать.
Вот пример того, как я объявил матрицу для работы, очень похожую на ту, которую использовала предыдущая функция, если кому-то было интересно, как я это сделал:
Любое исправление в майском письме или способе задать этот вопрос приветствуется.
Я хотел бы прочитать матрицу из cin, используя функцию, а затем вернуть матрицу обратно в main.
main.cpp
mymath.h
mymath.cpp
В чем моя ошибка?
Список ошибок подразумевает, что есть большая ошибка. Спасибо за помощь. Пожалуйста, будьте нежны, новичок здесь.
Решение
Вы должны префикс vector с std::vector в шапке, если у вас не было using namespace std; перед директивой включения. Во всяком случае, это хорошая практика std:: в шапке.
В основном это должно быть
то есть вы устанавливаете объект matrix к возвращаемому значению функции. В противном случае вы бы определили другой прототип для matrix_read в основной функции.
Другие решения
Максимилиан Мате был прав. Вот рабочий код: