0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 22
1

Непонятный вывод программы после инициализации структуры

25.10.2018, 21:57. Показов 1780. Ответов 45

В общем буду краток , написал программу , она выполнилась , но не так как надо и пока что не могу понять почему , считаю что что-то с памятью намудрил . Вот :
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
34
35
36
37
38
39
40
41
#include "pch.h"
#include <iostream>
#include <cstring>
#include <string>
 
struct CandyBar
{
    char name[20];
    float weight;
    int kal;
 
};
int main()
{
    using namespace std;
    CandyBar* ps = new CandyBar;
    CandyBar* pk[3];
    *pk[0] = {
        "roshen",
        25.5,
        800
        };
    *pk[1] = {
        "WKK",
        27.5,
        750
    };
    *pk[2] = {
        "Svitoch",
        30.2,
        990
    };
    
    cout << "Name:   " << pk[0]->name << "---" << pk[1]->name << "---" << pk[2]->name << endl
         << "Weight: " << pk[0]->weight << "---" << pk[1]->weight << "---" << pk[2]->weight << endl
         << "Kal:    " << pk[0]->kal << "---" << pk[1]->kal << "---" << pk[2]->kal << endl;
    delete[] pk, ps;
    return 0;
 
    
}
Вот результат выполнения программы :
Непонятный вывод программы после инициализации структуры
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2018, 21:57
Ответы с готовыми решениями:

Непонятный вывод структуры через функцию
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; struct st { char name; ...

Совместите объявление и инициализацию структуры. После инициализации структуры выполните изменение ее полей с последующи
Написать программу структурного описания каталога одной книги. ...

Непонятный вывод программы
помогите найти ошибку. почему пишет age а не 100?? Создавайте отдельные темы для ваших вопросов

Вывод структуры после сортировки
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include...

45
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
26.10.2018, 10:33 41
Цитата Сообщение от DrOffset Посмотреть сообщение
Если у нас есть какой-нибудь вложенный namespace или просто длинное имя.
Ну, можно использовать typedef или using ? У меня на проекте тоже длинное, но using namespace и в помине нету, мне б руки оторвали
В своих неймспейсах обычно пишут
C++
1
2
3
4
5
6
7
namespace somename
{
 
// Если нужно еще один сюда же вложенный и вставляют
// и в .h и в .cpp
 
} // namespace somename
0
16082 / 8684 / 2120
Регистрация: 30.01.2014
Сообщений: 14,968
26.10.2018, 11:05 42
Цитата Сообщение от Azazel-San Посмотреть сообщение
Ну, можно использовать
Можно.
Речь ведь не о том, что нужно обязательно использовать using namespace, а о том как его использовать, если это понадобилось.

Добавлено через 6 минут
И вообще мой комент был о другом изначально
Дело не в неймспейсах, а в том, что не стоит заниматься крючкотворством в ответах.
101 раз уже вижу, что человек приходит с конкретной проблемой, а в ответах ему, грубо говоря,
начинают придираться к орфографии. Вы просто попались на этот 101 раз...
0
Azazel-San
26.10.2018, 11:13
  #43

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
Вы просто попались на этот 101 раз...
Больше не буду :)

0
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 22
28.10.2018, 02:14  [ТС] 44
Цитата Сообщение от New man Посмотреть сообщение
CandyBar* candies = new CandyBar[3];
candies[0] = CandyBar{...};
....
delete[] candies; // Удалены все три
Это хорошо , но если например сделать эту структуру динамической (пользователь сам введет размер массива структур)
C++
1
2
3
int n ;
cin >> n ;
CandyBar * candies = new CandyBar[n];
То как потом достучаться до конкретного элемента массива структур при вводе данных с клавиатуры (я имею ввиду синтаксис , как указать например на ввод имени candies к примеру второй структуры) ?
0
308 / 220 / 74
Регистрация: 23.05.2011
Сообщений: 981
28.10.2018, 16:34 45
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int n ;
cin >> n ;
CandyBar * candies = new CandyBar[n];
for(size_t i = 0; i<n;++i)
{
     std::cin>>candies[i].name;
}
 
std::cout<<candies[1].name; // Выводим вторую
 
// А ещё можно так:
for(CandyBar* bar = candies; bar<candies + n; ++candies)
{
    std::cin>>bar->name;
}
1
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 22
28.10.2018, 18:17  [ТС] 46
New man, Понял , thx.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 18:17
Помогаю со студенческими работами здесь

Объяснить работу программы (структуры, файловый ввод/вывод)
объясните программу чему равняется v0??? и зачем int v=111??? #include &lt;iostream&gt; #include...

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

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

Непонятный размер объявленной структуры
Даже если отключить выравнивание границ структуры struct ConfigMenuItem { char Litera; // 1...


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

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

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