Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 17:11   #1
Fatal Error
Пользователь
 
Аватар для Fatal Error
 
Регистрация: 20.05.2012
Сообщений: 58
По умолчанию Массив динамических структур

пытаюсь создать массив динамических структур, но почему-то не выводится их значение. может я неправильно к ним обращаюсь? и еще при попытке присвоить строковую константу элементу структуры компилятор ругается.
Код:
#include <iostream>
using namespace std;
int main()
{
    struct ms {int a; char b[10]; float c;};
    ms *ps = new ms[3];
    ps[0].a = 10;
    //ps[0].b = "Hello"; тут ошибку дает
    ps[0].c = 1.5;
    (cin>>ps[1].a).get();
    cin.getline(ps[1].b, 10);
    (cin>>ps[1].c).get();
    cout<<ps[1].a<<" "<<ps[0].a<<endl
        <<ps[1].b<<//" "<<ps[0].b
    system("pause");
    delete [] ps;
    return 0;
}
Fatal Error вне форума Ответить с цитированием
Старый 27.06.2012, 17:18   #2
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Нельзя напрямую присвоить символьному массиву литерал или другой массив. Используйте функцию strcpy, которая копирует содержимое одной строки в другую.
rmv240899 вне форума Ответить с цитированием
Старый 27.06.2012, 17:34   #3
Fatal Error
Пользователь
 
Аватар для Fatal Error
 
Регистрация: 20.05.2012
Сообщений: 58
По умолчанию

а с вводом целых чисел все норм? ато при попытке вывести введенные данные ничего не выводится
Fatal Error вне форума Ответить с цитированием
Старый 27.06.2012, 19:13   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

.get() убери.
и у вас структура описана в теле функции
onewho вне форума Ответить с цитированием
Старый 27.06.2012, 19:43   #5
Fatal Error
Пользователь
 
Аватар для Fatal Error
 
Регистрация: 20.05.2012
Сообщений: 58
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
.get() убери.
и у вас структура описана в теле функции
а что такое??? у меня только одна функция, поэтому разницы нету где описывать переменные...
Fatal Error вне форума Ответить с цитированием
Старый 27.06.2012, 19:57   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Fatal Error Посмотреть сообщение
а что такое??? у меня только одна функция, поэтому разницы нету где описывать переменные...
Ой-ой-ой. Это новое открытие в языке С++ ?
Вам же сказали, описывайте структуру за пределами main.
А разница большая и заключается она в названии - наследование.
Дело в том, что если структура находится внутри функции - её нельзя будет наследовать, а это нарешение синтаксиса.
Ну, если Вы всё-же настаиваете, можете придумать (написать) свой компилятор (что не возброняется).
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.06.2012, 20:26   #7
Fatal Error
Пользователь
 
Аватар для Fatal Error
 
Регистрация: 20.05.2012
Сообщений: 58
По умолчанию

ХЗ, у меня в книжке написано что можно объявлять где хочешь
Fatal Error вне форума Ответить с цитированием
Старый 27.06.2012, 20:57   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
компилятор ругается.
А мат компилятора должны мы у Лобанова узнавать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2012, 21:00   #9
Fatal Error
Пользователь
 
Аватар для Fatal Error
 
Регистрация: 20.05.2012
Сообщений: 58
По умолчанию

ну можно и у него спросить, но он врядли знает=) 9 D:\С++\Упражнения\Безымянный1.cpp incompatible types in assignment of `const char[6]' to `char[10]'
Fatal Error вне форума Ответить с цитированием
Старый 03.07.2012, 23:56   #10
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Fatal Error, и что у вас за книжка?
Код:
#include <iostream>
using namespace std;
int main()
{
    struct ms {int a; char b[10]; float c;}; // вынести за мейн
    ms *ps = new ms[3];
    ps[0].a = 10;
    //ps[0].b = "Hello"; // надо написать strcpy(ps[0].b, "hello");
    ps[0].c = 1.5;
    (cin>>ps[1].a).get(); // убрать скобки и .get()
    cin.getline(ps[1].b, 10);
    (cin>>ps[1].c).get();
    cout<<ps[1].a<<" "<<ps[0].a<<endl
        <<ps[1].b<<//" "<<ps[0].b // тут знак комментария зачем-то и не хватает ; в конце
    system("pause");
    delete [] ps; // я бы рекомендовал вынести перед     system("pause");
    return 0;
}
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите программу с использованием динамических структур netiv Паскаль, Turbo Pascal, PascalABC.NET 2 02.03.2012 12:51
Описать одну из сложных динамических структур данных Sobaka_ru Помощь студентам 3 18.01.2012 21:18
Разработка динамических структур данных CW_13 Помощь студентам 0 18.12.2011 22:46
Массив динамических структур. Проблема с выделением памяти. Алексей Емеля Общие вопросы C/C++ 6 15.07.2011 19:24
Создание и использование динамических структур Oksana11 Помощь студентам 5 09.01.2008 19:39