Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
STGE
771 / 576 / 324
Регистрация: 17.06.2009
Сообщений: 1,188
#1

Указатели и структуры

21.05.2011, 22:53. Просмотров 1044. Ответов 6
Метки нет (Все метки)

Здравия желаю. Подскажите пожалуйста каким образом осуществляется доступ к полю структуры, если оно является указателем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 22:53
Ответы с готовыми решениями:

Указатели и структуры
Здравствуйте. Подскажите, пожалуйста, почему не меня среда ругается. error...

Указатели на структуры
Подскажите в чем ошибка...Дело в том когда я в вожу в каждое поле по 1 значению...

Структуры и указатели
Привет форумчане, столкнулся вот с такой вот задачкой на структуры: 1. Описать...

Структуры и указатели
Задался парой вопросов. Возможно, уже где-то задавались, поэтому прошу прощения...

Указатели на структуры
type celltype = record elетеt: integer; next: ^celltype end; ...

6
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
21.05.2011, 22:55 #2
Через оператор "стрелочка"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
struct A{
  int i;
  char c;
};
 
int main(){
  A *p;
  p = new A;
  p->c = 'a';
  p->i = 1;
  std::cout << p->c << ' ' << p->i;
  delete p;
  return 0;
}
0
yekka
386 / 150 / 16
Регистрация: 12.05.2011
Сообщений: 450
21.05.2011, 22:56 #3
C++
1
2
3
4
5
6
7
8
struct A {
  int Field1;
  int Field2;
};
...
A * p;
p->Field1 = 1;
p->Field2 = 2;
0
STGE
771 / 576 / 324
Регистрация: 17.06.2009
Сообщений: 1,188
21.05.2011, 23:11  [ТС] #4
Не экземпляр структуры, а поле (являющееся указателем):
C++
1
2
3
4
5
struct
{
    int a;
    float *b;
} c;
Как получить доступ к области памяти, адрес которой содержит указатель b ?
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
21.05.2011, 23:22 #5
Так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
struct A{
  int *i;
};
 
int main(){
  A a;
  int j = 4;
  a.i = &j;
  std::cout << *(a.i);
  return 0;
}
1
STGE
771 / 576 / 324
Регистрация: 17.06.2009
Сообщений: 1,188
21.05.2011, 23:55  [ТС] #6
asics, а ещё есть варианты?

Добавлено через 18 минут
asics, почему вы выполняете присваивание:
C++
1
a.i = &j;
Разве его нельзя выполнить след. образом:
C++
1
*(a.i) = j;
?
Если да, то по каким причинам ?
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
22.05.2011, 00:10 #7
Цитата Сообщение от STGE Посмотреть сообщение
Если да, то по каким причинам ?
C++
1
*(a.i)
- вы разыменовуете неизвесную область памяти(мусор), это черевато run-time ошибкой.
1
22.05.2011, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2011, 00:10

Указатели на структуры и функции
Я собственно не хотел бы заводить очередную тему на полезность/бесполезность...

Структуры и указатели на структуры
Так ли я сделал? #include &lt;iostream&gt; struct S { int i; }; void...

Указатели и динамические структуры данных
В данный момент занимаюсь изучением динамических структур данных и указателей,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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