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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 10:24   #1
zmejchik
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 10
По умолчанию Массив структур, ввод строки

Уважаемы знатоки, есть такой вот код, в массив структур нужно заполнить данными с помощью cin.get, компилируется успешно, но при выполнении выдает ошибку Необработанное исключение в "0x104c02d5" в "car.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd" при нужно ввести. Что здесь не так, вот код
PHP код:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
struct car 
{
    
char *Marka[40];
    
int GodVipuska;
};

int KolMashin;
cout<<"Сколько машин в каталоге ="cin>>KolMashin;cin.get();
car *Katalog = new car[KolMashin];//создаем массив структур

cout<<"\nВводим марку\n";

for (
int i=0;i<KolMashin;i++)   //ввод данных      
   
{
    
cin.get(*Katalog[i].Marka,40); //ошибка
    
cin.get();
    };

delete [] Katalog;
cin.get();
cin.get();
return 
0;} 
zmejchik вне форума Ответить с цитированием
Старый 15.11.2011, 11:08   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

zmejchik

Что здесь не так, вот код

не так здесь - с компилятором, который откомпилировал вот это: cin.get(*Katalog[i].Marka,40);

его нужно выкинуть и взять нормальный.
Rififi вне форума Ответить с цитированием
Старый 15.11.2011, 11:27   #3
zmejchik
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 10
По умолчанию

Ответ конечно интересный, но ясней от него не стало. Если можно как нужно правильно.
zmejchik вне форума Ответить с цитированием
Старый 15.11.2011, 11:31   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
не так здесь - с компилятором, который откомпилировал вот это: cin.get(*Katalog[i].Marka,40);
все правильно в той строке, вполне компилируемо:
http://cplusplus.com/reference/iostream/istream/get/
третий прототип.

руки надо выкинуть, которые обьявили в структуре, массив из сорока char*
причем не инициализированные они(указатели)

ТС, вы наверно хотели чтоб марка было массив символов из 40 символов?
а то у вас массив из 40 указателей.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.11.2011, 11:36   #5
zmejchik
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 10
По умолчанию

ТС, вы наверно хотели чтоб марка было массив символов из 40 символов?

Да, именно это и хотелось сделать.

ПС. Спасибо Пепел Феникса, ваша фраза помогла сделать правильно, все работает

Последний раз редактировалось zmejchik; 15.11.2011 в 11:39.
zmejchik вне форума Ответить с цитированием
Старый 15.11.2011, 12:28   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Пепел Феникса

все правильно в той строке, вполне компилируемо:
http://cplusplus.com/reference/iostream/istream/get/
третий прототип.


тут одно из двух - либо на момент ответа в декларации поля Marka не было звездочки, либо мне надо прекращать пить коньяк по утрам :D
Rififi вне форума Ответить с цитированием
Старый 15.11.2011, 12:50   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

пост не был редактирован.
так что второе
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод структур в динамический список Mahin Общие вопросы C/C++ 4 20.04.2011 10:30
Массив структур(Ввод из файла) ApXoH Общие вопросы C/C++ 2 04.06.2010 00:19
массив структур MichaelRED Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.05.2010 22:55
Массив структур velvetdust Общие вопросы C/C++ 0 21.03.2009 13:18