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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2016, 12:58   #1
diomed16
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 37
По умолчанию Обращение к одному элементу двумерного массива

Допустим, есть массив a[1][5]. Как обратиться не к двум элементам, а к одному? Типа, а[][2].
diomed16 вне форума Ответить с цитированием
Старый 16.09.2016, 13:46   #2
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

a [0] [4].
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 16.09.2016, 13:59   #3
diomed16
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
a [0] [4].
К сожалению, не получилось. А разве a[0] это не просто обращение к нулевому элементу массива? Просто вопрос в том, чтобы не обращаться вообще в этой части, как будто массив одномерный.
diomed16 вне форума Ответить с цитированием
Старый 16.09.2016, 14:03   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Тут зависит, как выделялась память под массив. Если сплошником, то можете использовать как одномерный, пересчитав индексы. Если как массив указателей на массив, то надо аккуратней сформулировать чего вы хотите.
p51x вне форума Ответить с цитированием
Старый 17.09.2016, 10:22   #5
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

a [0] – это обращение к (столбцу) строке. Иными словами, это указатель на начало линейного массива.
Если конкретно, это указатель на самый первый элемент этого двумерного массива. От него можно отсчитывать все другие элементы: a [0] + 1, a [0] + 2 и т.д. Главное, компилятору в нужном месте сказать, что это указатель:
*(a [0] + 2) есть значение третьего элемента массива.

Вот только, имхо, такими вещами незачем пользоваться, т.к. можно "просто сказать".

Массив a [1] [5] никто не делает. Вместо этого делают одномерный массив a [5].
Ты создал двумерный массив, в котором всего одна строка. Ну и зачем? Одномерный же проще создать.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось jura_k; 17.09.2016 в 10:33.
jura_k вне форума Ответить с цитированием
Старый 19.09.2016, 05:53   #6
diomed16
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
a [0] – это обращение к (столбцу) строке. Иными словами, это указатель на начало линейного массива.
Если конкретно, это указатель на самый первый элемент этого двумерного массива. От него можно отсчитывать все другие элементы: a [0] + 1, a [0] + 2 и т.д. Главное, компилятору в нужном месте сказать, что это указатель:
*(a [0] + 2) есть значение третьего элемента массива.

Вот только, имхо, такими вещами незачем пользоваться, т.к. можно "просто сказать".

Массив a [1] [5] никто не делает. Вместо этого делают одномерный массив a [5].
Ты создал двумерный массив, в котором всего одна строка. Ну и зачем? Одномерный же проще создать.
Насчёт последнего. Массив то не [1][5]. Он действительно двухмерный. Это массив строк. Столбцы логины, а строки пароли. А когда я хочу с помощью обычной переменной сравнить, у меня не выходит это корректно, допустим я хочу проверить только логин, или только пароль.
diomed16 вне форума Ответить с цитированием
Старый 19.09.2016, 07:22   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Мне кажется вы выбрали не правильную форму хранения. Возьмите структуру с двумя полями или std::tuple
p51x вне форума Ответить с цитированием
Старый 26.09.2016, 19:56   #8
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Мне тоже кажется что решение p51x будет чем массивы.
Они воспринемаются лучше.


PHP код:

typrdef struct
{
    
char name[128];
    
uint8 age;

users;

users myUsers[32];
uint8 user_counter;


while( 
user_counter 32 ){

    
myUsersuser_counter ].name .....;
    
myUsersuser_counter++ ].age .....;

}

// как то более приятно выглядит, но это просто мнение естественно. 
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 17.10.2016, 06:07   #9
diomed16
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Мне тоже кажется что решение p51x будет чем массивы.
Они воспринемаются лучше.


PHP код:

typrdef struct
{
    
char name[128];
    
uint8 age;

users;

users myUsers[32];
uint8 user_counter;


while( 
user_counter 32 ){

    
myUsersuser_counter ].name .....;
    
myUsersuser_counter++ ].age .....;

}

// как то более приятно выглядит, но это просто мнение естественно. 

Спасибо, хороший способ) На самом деле массивы мне особо не нужны были, Я просто хотел другу показать, как использовать массивы. А сам вот запоролся)
diomed16 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к элементу массива Jeckor Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2015 21:08
Обращение к предыдущему/следующему элементу массива feras Общие вопросы Delphi 1 08.06.2011 21:29
вставить по одному элементу перед отрицательным элементом массива (паскаль) lexflax Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2011 09:09
нужно организовать обращение к элементу массива в классе! unsurpassed Помощь студентам 0 13.01.2011 11:53
Обращение к первому и последнему элементу отсортированного массива СветланаRerum Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.05.2010 18:56