Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 22:38   #1
ideasforlife
Новичок
Джуниор
 
Регистрация: 09.10.2010
Сообщений: 2
Восклицание Константа

Надо найти константу(количество строк) в будущей матрице, если известно сколько элементов будет и количество столбцов.
И тогда как записать константу выражением, или оператором?
ОЧЕНЬ нужно. А то бьюсь уже с этой константой, все остальное сделал. Спасибо.
ideasforlife вне форума Ответить с цитированием
Старый 09.05.2011, 08:18   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Известно на какой момент? На момент выполнения или на момент компиляции?
Если на момент _выполнения_, то есть информация о количестве элементов и столбцов получается в процессе выполнения (вводится пользователем, считывается из файла и т.п.) -- то константу таким образом объявить нельзя.
Придется делать при помощи динамических массивов.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 09.05.2011 в 08:26.
Mandrivnyk вне форума Ответить с цитированием
Старый 09.05.2011, 09:41   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Код:
const int blah = someFunc(some_arg);
Так что ли?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 09.05.2011, 11:39   #4
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

N - элементов
n - столбцов

m = N/n строк
capta1n вне форума Ответить с цитированием
Старый 09.05.2011, 12:55   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Код:
const int blah = someFunc(some_arg);
Так что ли?
Нельзя так делать.
Вернее, можно только в том случае, если some_arg известен на момент компиляции.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 09.05.2011, 15:58   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Неправда твоя, так делать можно и нужно. Другое дело, что ISO C++ не позволяет использовать созданную таким образом константу для создания массивов в стеке:
Код:
#include <cmath>
#include <iostream>
int main() {
    int x;
    cin >> x;
    const int n = x;
    int arr[n];

    const int m = 2;
    int arr2[m];
}
Код:
./main.cpp:10:15: предупреждение: ISO C++ запрещает массив переменного размера «arr2» [-Wvla]
Первое не прокатило. Второе прокатило.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 09.05.2011 в 16:04.
Obey-Kun вне форума Ответить с цитированием
Старый 09.05.2011, 16:06   #7
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Неправда твоя, так делать можно и нужно.
Ты хочешь сказать, что такой код:
Код:
...
int a, b;
cin >> a >> b;
const int n = a * 2;
const int m = b * 2;
int Array[n][m];
...
имеет право на жизнь?

Update
Пока писал ответ, цитата обновилась.
Тем не менее, речь шла как раз об этом -- расчет количества строк для объявления массива.
Без динамических массивов, увы, не обойтись...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 09.05.2011 в 16:09.
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какому типу соответствует шестнадцатеричная константа 0xF7u atenon Общие вопросы C/C++ 7 06.01.2011 19:34
многомерный не квадартный массив-константа Izhic Общие вопросы Delphi 3 11.11.2009 16:34
Разъесните пожалуйста,что такое константа? Paul_AG Общие вопросы C/C++ 2 14.04.2009 16:39
что такое константа? if-soft Паскаль, Turbo Pascal, PascalABC.NET 11 14.10.2008 19:19