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

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

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

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

19.04.2012, 13:32. Просмотров 2461. Ответов 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 минут
Не, все равно не получается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 13:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обращение по адресу к элементам структуры (C++):

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

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

Обращение к элементам string - C++
Здравствуйте, Подскажите пжлст как обращаться к элементам string в данной ситуации: int n; cin &gt;&gt; n string * str = new string; ...

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

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

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

5
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
19.04.2012, 13:41 #2
Объясните точнее, что Вы хотите сделать, ничего из выше написанного я не понял
0
Байт
Эксперт C
16140 / 10418 / 1551
Регистрация: 24.12.2010
Сообщений: 19,720
19.04.2012, 13:54 #3
Чем не нравится
C++
1
p[i].n_element
?
0
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 на единицу. Я хочу сделать так, чтобы убрать "." и имя элемента. Т.е. обратиться по адресу к конкретному элементу и записать туда значение, после чего перейти к следующему элементу путем увеличения адреса на соответствующее число байт и проделать тоже самое.
0
Байт
Эксперт C
16140 / 10418 / 1551
Регистрация: 24.12.2010
Сообщений: 19,720
19.04.2012, 14:00 #5
Встречный вопрос. Какой тип имеют f_element, s_element ... ?
Если одинаковый, почему бы не сделать из них массив?
1
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 ... ?
Если одинаковый, почему бы не сделать из них массив?
Спасибо. Это именно так, как я и хотел
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 14:16
Привет! Вот еще темы с ответами:

Обращение к элементам массива в 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++
Здравствуйте, мне нужно отсортировать список по алфавиту. Я могу сделать это, если буду сортировать указатели, а как мне сортировать сами...

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

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


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
19.04.2012, 14:16
Ответ Создать тему
Опции темы

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