Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
#1

Статическое объявление матрицы - C++

06.07.2015, 04:33. Просмотров 596. Ответов 7
Метки нет (Все метки)

Здравствуйте.

у меня есть матрица А:
C++
1
2
3
4
5
6
    int n, m;
    cout<<"n = ";
    cin>>n;
    cout<<"m = ";
    cin>>m;
    double A[n][m];
Как описать функцию, чтоб в нее можно было передать эту матрицу? И корректно ли так объявлять матрицу?

Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2015, 04:33     Статическое объявление матрицы
Посмотрите здесь:

Объявление матрицы в классе - C++
Доброго времени суток. Захотел объявить и инициализировать матрицу в классе, и вывести определенные строки и столбцы. Но я с объявлением не...

Объявление и инициализация динамической матрицы - C++
Ребят, только начал разбираться с матрицой. примерно я знаю как написать матрицу, но не знаю как написать динамическую матрицу, и чтоб...

Статическое поле - C++
Помогите с такой проблемой. Программа нормально компилится, но возвращается, вот такая ошибка при объявлении статического поля,...

Статическое подключение DLL - C++
Хочу подключить dll в файл при компиляции в VC++ Project -&gt; Settings... -&gt; Вкладка General -&gt; раскрываемый список Microsoft foundation...

Статическое приведение типов - C++
Здравствуйте! Помогите пожалуйста разобраться со следующим кодом. #include &lt;iostream&gt; using namespace std; class Item { ...

Статическое связывание параметров методов - C++
Добрый день! В коде (представлен ниже) сделал оболочки для константной и простой ссылок. Известно, что в функции, которая ожидает...

Динамическое и статическое выделение памяти - C++
Добрый вечер. Если участок программы допускает создание некоего объекта и статически, и динамически, то какой способ лучше использовать? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6284 / 5887 / 1908
Регистрация: 18.12.2011
Сообщений: 15,112
Завершенные тесты: 1
06.07.2015, 04:41     Статическое объявление матрицы #2
Как раз так статическую матрицу объявлять нельзя (n,m должны быть константами).
Образец с переменными значениями n,m см. тут:
Образцы (шаблоны) программ для типовых задач
Если все же остановитесь на константах, то
C++
1
2
const int N=5, M=5;
double A[N][M];
И пример функции
C++
1
2
3
4
5
6
7
8
9
10
11
//
//---- ввод матрицы--------------------------------------
//
void Input( int M[N][M], size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout << "M[" << i << "][" << j << "] = ";
            std::cin >> M[i][j];
        }
    }
}
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
06.07.2015, 05:02  [ТС]     Статическое объявление матрицы #3
zss, спасибо, я в курсе этого.
Интересует именно такой тип объявления. Дело в том, что компилятор не ругается и все работает корректно. А вот передать в функцию не могу.
zss
Модератор
Эксперт С++
6284 / 5887 / 1908
Регистрация: 18.12.2011
Сообщений: 15,112
Завершенные тесты: 1
06.07.2015, 05:19     Статическое объявление матрицы #4
Такой вариант возможен только начиная с версии С++11.
Лучше его не использовать.
DrOffset
6920 / 4113 / 940
Регистрация: 30.01.2014
Сообщений: 6,908
06.07.2015, 05:38     Статическое объявление матрицы #5
Цитата Сообщение от zss Посмотреть сообщение
Такой вариант возможен только начиная с версии С++11.
В С++11 такой вариант тоже невозможен.
Такой вариант возможен только в GCC, благодаря поддержке VLA, заимствованной из С99.
Подробности про GCC.
Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
06.07.2015, 16:09  [ТС]     Статическое объявление матрицы #6
Цитата Сообщение от DrOffset Посмотреть сообщение
В С++11 такой вариант тоже невозможен.
Такой вариант возможен только в GCC, благодаря поддержке VLA, заимствованной из С99.
Подробности про GCC.
Очень странно, сделал как описано в GCC VLA:

C++
1
2
3
void tester (int len, char data[len][len])
{
}
Выдает ошибку:
use of parameter 'len' outside function body
void tester (int len, char data[len][len])
________________________ ^
А если сделать так:

C++
1
2
3
void tester (int len; char data[len][len], int len)
{
}
То ошибка:
expected ')' before ';' token
tester (int len; char data[len][len], int len)
__________ ^
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.07.2015, 22:24     Статическое объявление матрицы #7
Цитата Сообщение от Krasiosoft Посмотреть сообщение
Очень странно
Просто это для сишного кода надо проверять, а не для плюсового:
http://ideone.com/RP68bZ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2015, 04:21     Статическое объявление матрицы
Еще ссылки по теме:

Статическое поле,количество экземпляров класса - C++
Помогите понять,статическое поле stcount считает количество созданных экземпляров класса (объектов),я объявляю всего два объекта а он...

Статическое подключение системных DLL-файлов - C++
Добрый вечер, уважаемые форумчане! Ситуация следующая: Я написал программу, все работает так, как мне нужно. С помощью Actual Installer...

Почему метод класса затирает статическое поле - C++
Добрый день :) Я учу самостоятельна с++. Сейчас разбираю тему классы. Вот у меня возник вопрос по коду: #include&lt;iostream&gt; using...

Одномерный массив, статическое выделение памяти, ошибка в объявлении - C++
Здравствуйте. Снова надеюсь на вашу помощь.:confusion: В двух массивах записаны результаты 20 игр двух футбольных команд (если игра...

В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти? - C++
В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nkey
308 / 61 / 10
Регистрация: 21.12.2011
Сообщений: 281
Завершенные тесты: 2
07.07.2015, 04:21     Статическое объявление матрицы #8
Делайте динамическую матрицу, и затем указывайте размер какой нужен.
Yandex
Объявления
07.07.2015, 04:21     Статическое объявление матрицы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru