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

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

Восстановить пароль Регистрация
 
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
19.08.2014, 13:34     Как передвигать указатель на следующий элемент массива структур? #1
Вопрос относительно использования символа стрелка '->'.
Допустим, есть такой код:
Кликните здесь для просмотра всего текста
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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
19.08.2014, 13:38     Как передвигать указатель на следующий элемент массива структур? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Donnerwetter Посмотреть сообщение
Можно ли в цикле for применять такую форму записи
Применять-то конечно можно, только будете всегда указывать на первый элемент массива.

Вот так пойдёт:
C++
1
(list + i)->name
Fallenworld
75 / 75 / 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     Как передвигать указатель на следующий элемент массива структур?
Ответ Создать тему
Опции темы

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