powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Спецы!Помогите!!!
16 сообщений из 16, страница 1 из 1
Спецы!Помогите!!!
    #34287024
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется 4 массива ,но для расчетов в процессе работы программы нужен только один,имеется переменная которая определяет какой массив необходим (первый, второй, третий, или четвертый)!Они объявлены в заголовочном модуле с расширением *.h .Как сделать так,чтобы "подтягивался" в расчеты только нужный?Я слышал что-то про директивы препроцессора #ifndef #define и т.д.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287087
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМЯ ПЕРЕМЕННЫХ МАССИВА МЕНЯТЬ НЕЛЬЗЯ,МЕНЯЮТСЯ ТОЛЬКО САМИ ЗНАЧЕНИЯ В МАССИВЕ!
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287091
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дирректиры препроцессора для препроцессора, и значения переменных на них не повлияют, ибо диррективы исполняются ДО запускма программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#define lalala

#ifdef lalala
A = { 1 , 2 , 3 , 4 };
#else
A = {- 1 ,- 2 ,- 3 ,- 4 };
#endif

так вот, результаты с #define lalala и без него различные.

аффтопитезь: объект либо именован, либо не существует
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287319
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinдирректиры препроцессора для препроцессора, и значения переменных на них не повлияют, ибо диррективы исполняются ДО запускма программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#define lalala

#ifdef lalala
A = { 1 , 2 , 3 , 4 };
#else
A = {- 1 ,- 2 ,- 3 ,- 4 };
#endif

так вот, результаты с #define lalala и без него различные.

аффтопитезь: объект либо именован, либо не существует


Дело в том, что lalala вводится с консоли и не является константным выражением!
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287337
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyДело в том, что lalala вводится с консоли и не является константным выражением!

тогда диррективы ни к черту не годятся.

самое простое - указатель.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287729
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указатель тоже не сгодится,т.к. проето с расширением *.c а не *.cpp
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287826
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я почему нельзя сделать просто двумерный массив,
как раз в четыре строки, тогда i-я строка это как раз нужный тебе массив.
Причем если завести массив динамически то и количество столбцов
в каждом массиве можно сделать разным.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34287838
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyУказатель тоже не сгодится,т.к. проето с расширением *.c а не *.cpp

а еще раз и по русски?

если нельзя использовать двумерный массив (фактически указатель) и переменная меняется во ВРЕМЯ программы то никак.

а с чего ты решил, что lalala это константа??? читай внимательней про диррективы компиляции.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34288043
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty[quot Aklin]дирректиры препроцессора для препроцессора, и значения переменных на них не повлияют, ибо диррективы исполняются ДО запускма программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#define lalala

#ifdef lalala
A = { 1 , 2 , 3 , 4 };
#else
A = {- 1 ,- 2 ,- 3 ,- 4 };
#endif

аффтопитезь: объект либо именован, либо не существует

По поводу переменной lalala ,в моем понимании,она должна быть константой.Смысл в том,что я читаю про директивы препроцессора и не отдупляюсь,как сделать так,чтобы взависимости от введенного значения переменной (например DTH) менялось содержание массива (допустим того же массива А)
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34288085
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyПо поводу переменной lalala ,в моем понимании,она должна быть константой.Смысл в том,что я читаю про директивы препроцессора и не отдупляюсь,как сделать так,чтобы взависимости от введенного значения переменной (например DTH) менялось содержание массива (допустим того же массива А)

во-первых, lalala НЕ переменная и НЕ константа. это дирректива. (макроопределение)

во-вторых, если переменная изменяется в коде ВО ВРЕМЯ работы программы, то только ПРОГРАММНО.

Код: plaintext
1.
2.
3.
4.
5.
if( aa== 1  )
{
arr = { 1 , 2 , 3 , 4 };
}
else
...

не иначе. (двумерный массив - тот же указатель и свобится к приведенному способу.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34288718
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyУказатель тоже не сгодится,т.к. проето с расширением *.c а не *.cpp

Указатель существует и в С и в С++. Имя массива, тоже своего рода указатель. Он же у тебя существует?
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34288721
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty drafty[quot Aklin]дирректиры препроцессора для препроцессора, и значения переменных на них не повлияют, ибо диррективы исполняются ДО запускма программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#define lalala

#ifdef lalala
A = { 1 , 2 , 3 , 4 };
#else
A = {- 1 ,- 2 ,- 3 ,- 4 };
#endif

аффтопитезь: объект либо именован, либо не существует

По поводу переменной lalala ,в моем понимании,она должна быть константой.Смысл в том,что я читаю про директивы препроцессора и не отдупляюсь,как сделать так,чтобы взависимости от введенного значения переменной (например DTH) менялось содержание массива (допустим того же массива А)

Если тебе сложно работать с указаетлями, создай пятый массив и копируй туда данные из нужного. Потом его используй как тебе надо.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34288769
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhЕсли тебе сложно работать с указаетлями, создай пятый массив и копируй туда данные из нужного. Потом его используй как тебе надо.

либо он сам не знает, чего хочет, либо не врубется, чего хочет, либо хочет, чтобы диррективы компиляции в зависимости от введенного значения с клавы формировали массив.
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34290061
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да он по-видимому очень простой вещи, чтобы загрзить нужный массив динамически во время работы.у пусть положит каждый массив с одним и тем же именем в отдельный dll ив зависимоти от знаения переменной подгружает динамически нужный. Массив видать не маленькие, вот место и экономит...
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34290167
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedДа он по-видимому очень простой вещи, чтобы загрзить нужный массив динамически во время работы.у пусть положит каждый массив с одним и тем же именем в отдельный dll ив зависимоти от знаения переменной подгружает динамически нужный. Массив видать не маленькие, вот место и экономит...

он не врубается по ходу, что есть дирректива компиляции, а ты - DLL!!!!
...
Рейтинг: 0 / 0
Спецы!Помогите!!!
    #34291418
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать массив константных указателей на переменные-массивы и использовать вводимую переменнную как индекс.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int a[] = { 1 ,  2 ,  3 };
int b[] = { 4 ,  5 };
int c[] = { 6 ,  7 ,  8 ,  9 };
int d[] = { 10 ,  11 ,  12 ,  13 };
const int* ptr[] = {a, b, c, d};

//далее где-то в программе
int arrayIndex =  2 ;//любое значение, введенное в прогу

int* currentArray = ptr[arrayIndex];//далее currentArray можно использовать как массив

int buf = currentArray[ 0 ];//получаем первый элемент массива c, т.е.  6 
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Спецы!Помогите!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]