error: incompatible types in assignment. С++

Всем привет, столкнулся с проблемой: при попытке присвоить структурному массиву значения string, получаю ошибку:

error: incompatible types in assignment of 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' to 'std::__cxx11::string [32] {aka std::__cxx11::basic_string<char> [32]}'

Вот исполняемый код:

#include <iostream>
#include <cstring>
#include <ctime>

using namespace std;

string randtitle()
{
    srand(time(NULL));
    string r[5] = {"n", "s", "g", "o", "c"};
    return r[1 + rand() % 5];
};

string randartist()
{
    srand(time(NULL));
    string r[5] = {"v", "l", "m", "w", "e"};
    return r[1 + rand() % 5];
}

string randstyle()
{
    srand(time(NULL));
    string r[5] = {"a", "h", "b", "r", "p"};
    return r[1 + rand() % 5];
}

struct cdinfo
{
    string title[32], artist[32], style[32];
    int year, duration, cost;
}

int main()
{
    srand(time(NULL));
    int i, n = 10;
    cdinfo g[n];
    for(i = 0; i < n; i++)
    {
        g[i].title = randtitle();
        g[i].artist = randartist();
        g[i].style = randstyle();
        g[i].year = 1990 + rand() * 2005;
        g[i].duration = 30 + rand() % 50;
        g[i].cost = 60 + rand() % 150;
    }
}

Ответы (2 шт):

Автор решения: Harry

Ну у вас же, например

string title[32];

а вы пытаетесь присвоить массиву что?

g[i].title=randtitle();

Просто строку.

Вас же не удивляет, что

int a[10];

a = 5;

не сработает? тогда почему вы считаете, что можно присваивать массиву один элемент?...

→ Ссылка
Автор решения: Eugene_lamer

Решено. Вместо

string title[32],artist[32],style[32];

Нужно было записать

string title,artist,style;
→ Ссылка