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

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

Войти
Регистрация
Восстановить пароль
 
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
#1

Как передвигать указатель на следующий элемент массива структур? - C++

19.08.2014, 13:34. Просмотров 498. Ответов 3
Метки нет (Все метки)

Вопрос относительно использования символа стрелка '->'.
Допустим, есть такой код:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
 
struct man
{
    char name[20];
    int age;
};
 
int main()
{
    cout << "Enter men amount: ";
    int amount;
    cin >> amount;
    cin.ignore();
    man *list = new man[amount];
 
    for (int i = 0; i < amount; ++i)
    {
        cout << "Man #" << i + 1 << " name: ";
        cin.getline(list[i].name, 20);
        cout << "Man #" << i + 1 << " age: ";
        cin >> list[i].age;
        cin.ignore();
    }
 
    for (int i = 0; i < amount; i++)
    {
        cout << "Man #" << i + 1 << ":\n";
        cout << list[i].name << " " << list[i].age << endl;
    }
    return 0;
}


Можно ли в цикле for применять такую форму записи:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < amount; ++i)
    {
        cout << "Man #" << i + 1 << " name: ";
        cin.getline(list->name, 20);
        cout << "Man #" << i + 1 << " age: ";
        cin >> list->age;
        cin.ignore();
    }

и как в таком случае передвигать указатель на следующий элемент массива структур?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2014, 13:34     Как передвигать указатель на следующий элемент массива структур?
Посмотрите здесь:

Указатель на следующий элемент структуры C++
Исключить из массива первый положительный элемент, следующий за максимальным C++
C++ Можно ли представить структуру как элемент массива, т е массив состоящий из однотипных структур
Удалить элемент из массива структур C++
C++ Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив?
Передача массива структур в функцию через указатель C++
Указатель в списке ссылается на себя, а не на следующий элемент C++
C++ Передвинуть указатель на следующий элемент структуры
Создать указатель на элемент массива C++
C++ Как передвигать указатель на разное количество байт?
Как добавить элемент в очередь, используя указатель на последний элемент? C++
C++ Почему мы не разыменовываем указатель на элемент массива?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
757 / 690 / 124
Регистрация: 27.07.2012
Сообщений: 1,975
Завершенные тесты: 3
19.08.2014, 13:38     Как передвигать указатель на следующий элемент массива структур? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Donnerwetter Посмотреть сообщение
Можно ли в цикле for применять такую форму записи
Применять-то конечно можно, только будете всегда указывать на первый элемент массива.

Вот так пойдёт:
C++
1
(list + i)->name
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
19.08.2014, 13:41     Как передвигать указатель на следующий элемент массива структур? #3
Как и во всех массивах С++, имя - это указатель на его 1ый элемент.
инкремент передвигает указатель на следующий
C++
1
list++
как написано выше можно и так
C++
1
(list+i)
в этом случае list продолжить указывать на 1ый элемент массива.

П.С. пожелание: допиши в конец
C++
1
delete [] list
чтобы ресурсы не утекали...
П.П.С. напомню, что 1ый элемент имеет номер 0
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
19.08.2014, 13:53  [ТС]     Как передвигать указатель на следующий элемент массива структур? #4
Цитата Сообщение от John Prick Посмотреть сообщение
Вот так пойдёт
то, что доктор прописал!
Цитата Сообщение от Fallenworld Посмотреть сообщение
list++
как раз вот так и пробовал, не работает, поэтому решил спросить; а про delete забыл, спасибо за напоминание

вопрос решен.
Yandex
Объявления
19.08.2014, 13:53     Как передвигать указатель на следующий элемент массива структур?
Ответ Создать тему
Опции темы

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