40 / 40 / 17
Регистрация: 04.02.2014
Сообщений: 144
1

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

19.08.2014, 13:34. Показов 5804. Ответов 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();
    }

и как в таком случае передвигать указатель на следующий элемент массива структур?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2014, 13:34
Ответы с готовыми решениями:

Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив?
Допустим есть некое условие,нам нужно при каждом его выполнении выделить память под новый элемент и...

Указатель на следующий элемент структуры
Как преобразовать строку myArray.next = &amp;myArray.x; , чтобы она правильно работала? В следующем...

Как передвигать указатель на разное количество байт?
В общем проблема такая, нужно создать динамический массив из элементов дабл в начале которого есть...

Передвинуть указатель на следующий элемент структуры
Есть структура struct reklama //Создаем структуру! { char zakazchik; //здесь будет...

3
2098 / 1619 / 690
Регистрация: 27.07.2012
Сообщений: 4,853
19.08.2014, 13:38 2
Лучший ответ Сообщение было отмечено Donnerwetter как решение

Решение

Цитата Сообщение от Donnerwetter Посмотреть сообщение
Можно ли в цикле for применять такую форму записи
Применять-то конечно можно, только будете всегда указывать на первый элемент массива.

Вот так пойдёт:
C++
1
(list + i)->name
1
76 / 76 / 32
Регистрация: 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
1
40 / 40 / 17
Регистрация: 04.02.2014
Сообщений: 144
19.08.2014, 13:53  [ТС] 4
Цитата Сообщение от John Prick Посмотреть сообщение
Вот так пойдёт
то, что доктор прописал!
Цитата Сообщение от Fallenworld Посмотреть сообщение
list++
как раз вот так и пробовал, не работает, поэтому решил спросить; а про delete забыл, спасибо за напоминание

вопрос решен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2014, 13:53
Помогаю со студенческими работами здесь

Указатель в списке ссылается на себя, а не на следующий элемент
Уважаемые, форумчане! Помогите разобраться в вопросе. Я хочу реализовать стек(добавление...

Передача массива структур в функцию через указатель
вот пример куска кода, не могу понять почему ругается на: void Add(student *ptr) { for(int i =...

Как вытащить const указатель из массива структур?
Здравствуйте. Пишу на pic в mplab. Хочу вытащить const указатель из массива структур, чтобы...

подскажите, как найти следующий за максимальным элемент массива?
нужно найти второй по величине, т.е следующий за максимальным, элемент массива из 30 различных...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru