Как получить доступ к членам динамического массива структур с помощью указателей?

Это основная структура:

#include <iostream>
using namespace std;

struct CandyBar
{
char brand_name[30];
float candy_weight;
int candy_calories;
};

int main()
{
CandyBar * snack = new CandyBar [3];

return 0;
}

Мне удалось инициализировать динамически распределенные 3 структуры в массиве из 3 элементов.
Я пытался получить доступ к структурам через:

snack[0]->brand_name = "Whatever";

без результата, даже с другим методом:

(*snack[0]).brand_name = "Whatever";

Я действительно понятия не имею, так как я изучал их в течение нескольких дней.

1

Решение

поскольку snack это массив структур, просто используйте snack[0].brand_name,

Вы также не можете скопировать строку, просто используя = в C. Использование strcpy вместо:

strcpy(snack[0].brand_name, "Kitkat");
1

Другие решения

В C ++ строки являются массивами, и массивы нельзя скопировать с помощью =, Пытаться:

strcpy(snack[0].brand_name, "Whatever");
0

По вопросам рекламы [email protected]