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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2018, 22:17   #1
Yudin
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 49
Восклицание Как объявить в структуре массив? С++

У меня есть структура, которая служит шаблоном для характеристик продуктов. Одной из характеристик является наличие витаминов. Как в структуре надо задать массив "vitamins", чтобы можно было в главной функции использовать это поле для разных продуктов с разным кол-вом элементов массива "vitamins"? Прикрепляю код, чтобы было понятней, что я пытаюсь спросить.
Код:
#include <iostream>
#include <string>
using namespace std;

struct product
{
	string name;
	float caloricity;
	char vitamins[50];//массив, допустим на 50 элементов 
	float price;
};
int main ()
{
	cout << "Choose a product characteristics of which you want to see (type the name of the product)";
	string a = "egg";
	product egg;
	egg.caloricity = 157;
	egg.price = 68;
	egg.vitamins[5] = { 'A', 'D', 'E', 'C' '\0' }; //витамины в яйце
	product apple;
	apple.vitamins[9]= { 'В', 'A', 'С', 'К', 'Н', 'Е', 'Р', 'РР', '\0' }//витамины в яблоке

Последний раз редактировалось Yudin; 26.01.2018 в 22:18. Причина: дописал комментарий
Yudin вне форума Ответить с цитированием
Старый 27.01.2018, 08:19   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Как указатель и выделять динамически, или использовать стандартный вуктор.
p51x вне форума Ответить с цитированием
Старый 27.01.2018, 17:59   #3
Yudin
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 49
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Как указатель и выделять динамически, или использовать стандартный вуктор.
Подскажите, пожалуйста, как это записать в коде?
Код:
struct product
{
	char *vitamins;
};
int main ()
{
	egg.vitamins = new char[9];
	egg.vitamins[9] = { 'В', 'A', 'С', 'К', 'Н', 'Е', 'Р', 'РР', '\0' };
Yudin вне форума Ответить с цитированием
Старый 02.02.2018, 16:37   #4
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
#include <vector>
struct product
{
   std::vector<char> vitamins;
};
int main()
{
    product pr;
    pr.vitamins = std::vector<char>({'a', 'b'});
}
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в С++ объявить массив объектов? EVOSandru6 C++ Builder 1 29.04.2015 15:17
Процесс компиляции. Как объявить массив. Digitext Помощь студентам 4 24.12.2013 14:57
Объявить файл *.txt как массив nnm2009 Общие вопросы Delphi 4 28.05.2013 13:06
как в процедуре объявить массив? kolduev Помощь студентам 7 18.02.2008 23:35