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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
#1

Обращение по адресу к элементам структуры - C++

19.04.2012, 13:32. Просмотров 2385. Ответов 5
Метки нет (Все метки)

Есть структура fs:
C++
1
2
3
4
5
6
7
struct fs
{
     f_element;
     s_element;
     ...
    n_element;
};
Есть массив указателей на структуру
C++
1
struct fs *p = new struct fs [n];
Для перемещения по объектам используем конструкцию типа p[i] (0<i<n), где p[i] - это должен быть адрес первого элемента структуры.
Как перемещаться по элементам p[i] структуры? Нужно обойти констуркцию p[i].n_element;

Добавлено через 21 минуту
Надо попробовать увеличить адресс-p[i] на число байт, которое занимает один элемент структуры. Вроде должно получиться

Добавлено через 29 минут
Не, все равно не получается
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 13:32     Обращение по адресу к элементам структуры
Посмотрите здесь:

Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09 - C++
Необработанное исключение по адресу 0x00105FD7 в Динамические структуры.exe: 0xC0000005: нарушение прав доступа при чтении по адресу...

Почему обращение к недоступному адресу в памяти - C++
Почему при проверке кода(компиляции) выскакивает сообщение :&quot;Недостаточный размер массивов или обращение по недоступному адресу в памяти&quot; ?...

Обращение к элементам вектора - C++
Вопрос вот в чем. Есть следующий код: #include &lt;vector&gt; #include &lt;iostream&gt; int main() { std::vector&lt;int&gt; a(10, 1); ...

Обращение к элементам матрицы - C++
Всем привет. Вот моё задание: В данной матрице определить произведение абсолютных значений элементов (ПАЗ) в столбцах с a до b. Я написал...

Обращение к элементам массива в C++ - C++
#include &lt;SFML\Graphics.hpp&gt; const int number_units = 1; Sprite Person; Sprite unitsSprite = { Person }; for (int i = 0; i &lt;...

Обращение к элементам вектора - C++
как обратиться к N=43 строке вектора нумерация с 0 vector&lt;int&gt; myVector;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
19.04.2012, 13:41     Обращение по адресу к элементам структуры #2
Объясните точнее, что Вы хотите сделать, ничего из выше написанного я не понял
Байт
Эксперт C
15847 / 10174 / 1524
Регистрация: 24.12.2010
Сообщений: 19,186
19.04.2012, 13:54     Обращение по адресу к элементам структуры #3
Чем не нравится
C++
1
p[i].n_element
?
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
19.04.2012, 13:56  [ТС]     Обращение по адресу к элементам структуры #4
Цитата Сообщение от Toshkarik Посмотреть сообщение
Объясните точнее, что Вы хотите сделать, ничего из выше написанного я не понял
В цикле фор необходимо заполнить элементы p[i]-структуры. Не придумал ничего лучшего, чем попытаться обратиться поадресно к каждому элементу. В обычном случае мне бы пришлось делать так:
C++
1
2
3
4
5
6
for(int i=0;i<n;i++)
{
cin>> p[i].f_element;
cin >> p[i].s_element;
....
}
Если у меня добавляется ещё один элемент в структуру, мне придется вернуться в этот цикл и добвать ещё одну запись для заполнения p[i].n_element-а и увеличить число n на единицу. Я хочу сделать так, чтобы убрать "." и имя элемента. Т.е. обратиться по адресу к конкретному элементу и записать туда значение, после чего перейти к следующему элементу путем увеличения адреса на соответствующее число байт и проделать тоже самое.
Байт
Эксперт C
15847 / 10174 / 1524
Регистрация: 24.12.2010
Сообщений: 19,186
19.04.2012, 14:00     Обращение по адресу к элементам структуры #5
Встречный вопрос. Какой тип имеют f_element, s_element ... ?
Если одинаковый, почему бы не сделать из них массив?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 14:16     Обращение по адресу к элементам структуры
Еще ссылки по теме:

Обращение к элементам класса через [] - C++
Пишу класс для работы с комплексными числами, почти все готово, осталось только 1 задание.

Сортировка эл-ов списка, обращение к элементам - C++
Здравствуйте, мне нужно отсортировать список по алфавиту. Я могу сделать это, если буду сортировать указатели, а как мне сортировать сами...

Обращение к определенным элементам vector'а - C++
Всем привет! Появилось потребность в библиотеке vector. Подскажите, как обращаться к элементам вектора. Как обращаться к определенному...

Обращение к элементам массива структур - C++
Вводим n-ое количество имен и количество оценок каждому из имен.(студент - оценки) #include &lt;iostream&gt; using namespace std; ...

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

Обращение к элементам двухмерного динамического массива - C++
Строки в двумерном динамическом массиве расположены не вплотную друг к другу. Тогда почему чтобы получить значение из массива оператор ar...


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

Или воспользуйтесь поиском по форуму:
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
19.04.2012, 14:16  [ТС]     Обращение по адресу к элементам структуры #6
Цитата Сообщение от Байт Посмотреть сообщение
Встречный вопрос. Какой тип имеют f_element, s_element ... ?
Если одинаковый, почему бы не сделать из них массив?
это указатели на тип char...
А хорошая идея ) Сейчас попробую

Добавлено через 13 минут
Цитата Сообщение от Байт Посмотреть сообщение
Встречный вопрос. Какой тип имеют f_element, s_element ... ?
Если одинаковый, почему бы не сделать из них массив?
Спасибо. Это именно так, как я и хотел
Yandex
Объявления
19.04.2012, 14:16     Обращение по адресу к элементам структуры
Ответ Создать тему
Опции темы

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