|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.02.2008, 15:03 | #1 |
Регистрация: 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!!! |
24.02.2008, 15:16 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
24.02.2008, 15:23 | #3 |
Регистрация: 24.02.2008
Сообщений: 7
|
не, ну понятно, что поля структуры appNumb тип - int, но ведь appNumb здесь - это _второе_ поле, а не первое, так почему поле fio[150] типа char компилятор пропускает, а поле appNumb типа int - нет?
И вообще: как мне _правильно_ описать массив структур с заранее неизвестным количеством элементов? (И сам знаю, что где-то туплю, но вот где?) |
24.02.2008, 15:28 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
При чем здесь "первое поле, второе поле..." он вот на это:"new struct [Quant];" ругается. Посмотрите синтаксис оператора new. А массив уже описан и, как видите, работает - элементам можно присваивать значения.
|
24.02.2008, 15:52 | #5 |
Регистрация: 24.02.2008
Сообщений: 7
|
К сожалению, негде мне сейчас подробно посмотреть синтаксис оператора new. Все, что попадается - примеры типа
char *buffer = new char[50]; но это и так понятно. Может, ссылочку какую толковую выложите или здесь объясните? А то очень надо... |
24.02.2008, 16:05 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Спишите любую книгу по C++, хоть отсюда, кроме того есть хэлп в среде. оператор new должен знать какого типа переменную от него ждут, чтобы определить, сколько памяти выделять, а Вы ему вместо этого ключевое слово даёте. смотрите Ваш же пример: char *buffer = new char[50];
|
24.02.2008, 16:22 | #7 |
Регистрация: 24.02.2008
Сообщений: 7
|
Так ведь вроде все правильно сделал:
char *buffer = new char[50]; и struct { char fio[150]; int appNumb; } *Hotel = new struct [Quant]; что ж оно не работает? (говорю же: и сам знаю, что где-то туплю, но вот где?) |
24.02.2008, 16:25 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Ещё раз. struct - это не тип, это ключевое слово. Сравните свой неработающий код с моим работающим и увидите разницу.
|
24.02.2008, 16:34 | #9 |
Регистрация: 24.02.2008
Сообщений: 7
|
Да. Внимательно сравнил, разницу увидел Спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический массив структур | 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 |