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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2008, 15:03   #1
PersonaGrata
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию Массив структур с заранее неизвестным количеством элементов, С++

собственно, subj.
Почему, например, когда я пишу
struct
{
char fio[150];
int appNumb;
} Hotel[100];
- то все работает, а когда я хочу организовать тот же массив с заранее не известным кол-вом элементов:

int Quant = 100;
struct
{
char fio[150];
int appNumb;
} *Hotel = new struct [Quant];

то выдает "Cannot convert 'int*' to 'struct*' ??? Откуда здесь вообще int?
Помогите, plz!!!
PersonaGrata вне форума Ответить с цитированием
Старый 24.02.2008, 15:16   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от PersonaGrata Посмотреть сообщение
Откуда здесь вообще int?
А откуда здесь вообще struct?

Код:
int Quant = 100;
struct HOTEL
{
	char fio[150];
	int appNumb;
} *Hotel = new HOTEL [Quant];
//................
Hotel[10].appNumb = 10;
Hotel[20].appNumb = 20;
// и т.д.
B_N вне форума Ответить с цитированием
Старый 24.02.2008, 15:23   #3
PersonaGrata
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

не, ну понятно, что поля структуры appNumb тип - int, но ведь appNumb здесь - это _второе_ поле, а не первое, так почему поле fio[150] типа char компилятор пропускает, а поле appNumb типа int - нет?

И вообще: как мне _правильно_ описать массив структур с заранее неизвестным количеством элементов? (И сам знаю, что где-то туплю, но вот где?)
PersonaGrata вне форума Ответить с цитированием
Старый 24.02.2008, 15:28   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

При чем здесь "первое поле, второе поле..." он вот на это:"new struct [Quant];" ругается. Посмотрите синтаксис оператора new. А массив уже описан и, как видите, работает - элементам можно присваивать значения.
B_N вне форума Ответить с цитированием
Старый 24.02.2008, 15:52   #5
PersonaGrata
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

К сожалению, негде мне сейчас подробно посмотреть синтаксис оператора new. Все, что попадается - примеры типа

char *buffer = new char[50];

но это и так понятно.
Может, ссылочку какую толковую выложите или здесь объясните? А то очень надо...
PersonaGrata вне форума Ответить с цитированием
Старый 24.02.2008, 16:05   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Спишите любую книгу по C++, хоть отсюда, кроме того есть хэлп в среде. оператор new должен знать какого типа переменную от него ждут, чтобы определить, сколько памяти выделять, а Вы ему вместо этого ключевое слово даёте. смотрите Ваш же пример: char *buffer = new char[50];
B_N вне форума Ответить с цитированием
Старый 24.02.2008, 16:22   #7
PersonaGrata
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

Так ведь вроде все правильно сделал:

char *buffer = new char[50];
и
struct
{
char fio[150];
int appNumb;
}
*Hotel = new struct [Quant];

что ж оно не работает?
(говорю же: и сам знаю, что где-то туплю, но вот где?)
PersonaGrata вне форума Ответить с цитированием
Старый 24.02.2008, 16:25   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Ещё раз. struct - это не тип, это ключевое слово. Сравните свой неработающий код с моим работающим и увидите разницу.
B_N вне форума Ответить с цитированием
Старый 24.02.2008, 16:34   #9
PersonaGrata
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

Да. Внимательно сравнил, разницу увидел Спасибо!
PersonaGrata вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив структур RaZveDchiK Помощь студентам 1 31.08.2008 21:44
Динамический массив структур Kostyakovich Помощь студентам 4 20.04.2008 21:59
массив с заранее неизвестным числом элементов Var17 Общие вопросы Delphi 4 29.12.2007 08:20
Генерировать массив без повтора значений элементов. На (С.) Raptor Помощь студентам 5 17.12.2007 14:42