Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 124
от 09.06.2005, 16:20

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 21737: Здравствуйте, эксперты! Подскажите, пожалуйста, мне в следующей ситуации. Имеется структура MCP_NEWVARIABLE_DATA_EX и следующий код: MCP_NEWVARIABLE_DATA_EX dmMembers[255]; memset(&dmMembers, 0, sizeof(MCP_NEWVARIABLE_DATA_EX) * 255);<br...

Вопрос № 21.737
Здравствуйте, эксперты!
Подскажите, пожалуйста, мне в следующей ситуации. Имеется структура MCP_NEWVARIABLE_DATA_EX и следующий код:
MCP_NEWVARIABLE_DATA_EX dmMembers[255];
memset(&dmMembers, 0, sizeof(MCP_NEWVARIABLE_DATA_EX) * 255);
for (int i = 0; i < count; i++)
{
strcpy(dmMembers[i].szVarName, Tags[i+1].NameTag); //Название тега элемента
dmMembers[i].Common.dwVarType = DM_VARTYPE_TEXT_16; //Тип тега элемента
dmMembers[i].Common.dwVarLength = sizeof(dmMembers[i].Common.dwVarType);
}
Мне хотелось бы менять размер массива dmMembers динамически. Пробовал вот так:
MCP_NEWVARIABLE_DATA_EX dmMembers[count]; где count я передаю как аргумент функции. C++ Builder 6 ругается, что «требуется константное выражение». Пробовал объявлять как указатель, но не получается что-то:
MCP_NEWVARIABLE_DATA_EX *dmMembers=new MCP_NEWVARIABLE_DATA_EX[count];
memset(dmMembers, 0, sizeof(MCP_NEWVARIABLE_DATA_EX) * 255);
Ну а дальше как разыменовать указатель? Что-то пробовал – не получается. Может просто не знаю. Подскажите, пожалуйста, как мне сделать динамический размер массива структур?
Заранее благодарю, Эдуард.
Отправлен: 03.06.2005, 23:56
Вопрос задал: Hied (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Raptor1
Здравствуйте, Hied!
Используй второй вариант инициализации, при этом работа с массивом остается такой же как если бы он был объявлен не динамически, главное - не за забыть вызвать delete [] dmMembers; после того как массив станет не нужен.
А как ты пробовал "разименовать" указатель?
Ответ отправил: Raptor1 (статус: 4-ый класс)
Отправлен: 04.06.2005, 22:54


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное