Массив структуры [требует правки]

289
16 января 2017, 20:40

Разработайте структуру для хранения данных о цветном кружке:

К примеру вот структура:

struct Krug {
    char cvetKr;
    int x, y, z;
};

передаю в функцию структуру.

 int N = 3; //количество кружков  
 Krug* globalKrug = nullptr;  
 EnterKrug(globalKrug, N);

по идее надо сделать: "Создайте массив цветных кружков".

вот функция. Тут я не правильно принимаю как-то структуру.

void EnterKrug(Krug *globalKrug, int NN)
{
    for(int i=0; i<=NN; i++)
    {
        scanf(&(globalKrug)[i].cvetKr);
    }
}
Answer 1

В C++ вы можете создать массив, явно объявив его, как, например,

const size_t N = 3;//количество кружков  
^^^^^
Krug globalKrug[N];

Или распределить его в динамической памяти. Например,

size_t N = 3;//количество кружков  
Krug *globalKrug = new Krug[N];  

Имейте в виду, что данное предложение в функции

scanf(&(globalKrug)[i].cvetKr);

некорректное. Вы должны по крайней мере записать

scanf( " %c", &globalKrug[i].cvetKr );
       ^^^^^
Answer 2

Помимо того, что вы не выделяете память (об этом написал @Vlad from Moscow), у вас есть еще одна нестыковка:

int N = 3;//количество кружков  

А тут вы пишете

for(int i=0; i<=NN; i++)

В результате цикл выполняется N+1 раз.

READ ALSO
После компиляции трансляция?

После компиляции трансляция?

Изучаю WinApi, столкнулся в одной книге с таким описанием:

295
Функция со switch с переменным количеством case

Функция со switch с переменным количеством case

Допустим, у меня есть несколько таких блоков:

334
ImageMagick C++ API бинарное (1 bit per pixel) изображение

ImageMagick C++ API бинарное (1 bit per pixel) изображение

Существует ли возможность создания 1-битных изображений и конвертации в этот формат изображений иных форматов с помощью библиотеки imagemagick?...

327
Движение игрока в Box2D после прыжка

Движение игрока в Box2D после прыжка

В игре присутствует модель игрокаСуть в том, что при нажатии W игрок просто летит вверх

333