Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127

Указатели

27.05.2013, 21:31. Показов 457. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли как-то избавиться от скобочек вокруг (*temp), как тут вообще переписать это?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Item * ReadItems() {
    Item *head = NULL, **temp;
    ifstream IN(itemsName);
    temp = &head;
    
        char buf[MAX_LEN];
        while (IN.getline(buf, MAX_LEN, '\n')) {
            *temp = new Item;
            int i = 0;
            while (buf[i] != ' ')
                ++i;
            buf[i] = '\0';
            (*temp)->name = new char[i];
            strcpy((*temp)->name, buf);
            i++;
            (*temp)->amount = atoi(buf + i);
            temp = &(*temp)->next;
        }
    
    IN.close();
    *temp = NULL;
    return head;
}
Добавлено через 6 минут
Например если вот так делаю, то где ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Item * ReadItems() {
    Item *head = NULL, *temp=head;
    ifstream IN(itemsName);
    //temp = *head;
        char buf[MAX_LEN];
        while (IN.getline(buf, MAX_LEN, '\n')) {
            temp = new Item;
            int i = 0;
            while (buf[i] != ' ')
                ++i;
            buf[i] = '\0';
            temp->name = new char[i];
            strcpy(temp->name, buf);
            i++;
            temp->amount = atoi(buf + i);
            temp = temp->next;
        }
    
    IN.close();
    //*temp = NULL;
    return head;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2013, 21:31
Ответы с готовыми решениями:

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей?
Доброго времени суток! Задался теоретическим вопросом. Читал пример из книги Лафоре ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++,...

6
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
27.05.2013, 21:45
C++
1
2
3
4
5
6
    Item *temp;
    ...
    temp = head;
    ...
    strcpy( temp->name, buf );
    ...
Остальное по-аналогии..
1
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127
28.05.2013, 10:01  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
C++
1
2
3
4
5
6
    Item *temp;
    ...
    temp = head;
    ...
    strcpy( temp->name, buf );
    ...
Остальное по-аналогии..
Этот способ представлен в моем втором варианте, не работает

Добавлено через 11 часов 17 минут
up, вопрос актуален.
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
28.05.2013, 10:28
Вы же читаете массив переменных типа Item.
Все будет гораздо понятнее, если сначала прочитать файл в холостую
и определить количество записей, а потом создать массив head нужного размера,
перемотать файл на начало и читать прямо в этот массив.
1
Заблокирован
28.05.2013, 10:51
C++
1
(**temp).name
1
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127
28.05.2013, 21:55  [ТС]
Извините, что повторяюсь, но вопрос еще актуален, up.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.05.2013, 22:34
Что должна возвращать функция ReadItems ?

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Item * ReadItems() {
    Item *head = 0, *tail, *temp;
    ...
    while ( ... ) {
        temp = new Item;
        ...
        // заполняем temp
        ...
        if ( !head ) {
            head = tail = temp;
            head->next = 0;
        } else {
            tail->next = temp;
            tail = tail->next;
        }
    }
    ...
    return head;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2013, 22:34
Помогаю со студенческими работами здесь

Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком
Смысл задания в том, что нужно отсортировать массив структур из 3х полей по сумме координат есть структура struct XYZ{ ...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной
Мой код. #include <iostream> #include <stdlib.h> #include<iomanip> using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов?
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Зачем нужны все эти указатели (или не указатели)
Зачем надо DWORD, HANDLE, LPVOID?

Указатели на указатели, как правильно разыменовать, где ошибка?
1)Есть класс: Shape - абстрактный; у него есть классы наследники: Circle, Triangle. 2)Eсть контейнер: vector <Shape*> Scontainer;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru