@xdgadd
ML/Python/Cpp

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

Задали написать небольшой проект из нескольких классов - библиотеку, обязательно использование динамической памяти.
Я не очень понимаю как работать в данном случае с динамической памятью, но в похожей ситуации, только с классом Book, всё получилось:
//Book *books[];
(*this->books[i]).show();


Объясните, пожалуйста, в чём мои ошибки.

Код класса Genre, с которым у меня проблемы:
class Genre {
    struct Genres {
        string name;
        string description;
    };
    int index = 0;
public:
    Genres *genres[];

    Genre() {}
    Genre(string, string);
    ~Genre() { delete []*genres; }

    void addGenre(string, string);
    void getGenreByName(string);
    bool isGenreExists(string);
    string goodLetters(string);
};

Метод addGenre:
void Genre::addGenre(string name, string desc) {
    name = this->goodLetters(name);
    
    // мои попытки
    (*this->genres[this->index]).name = name; 
    this->genres[this->index]->name = name; 
    
    //this->genres[this->index]->description = desc;
    this->index++;
}


Спасибо!
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
@xdgadd Автор вопроса
ML/Python/Cpp
Я отказался от структур, тогда задачу можно решить так(спасибо AtomKrieg, его код помог вникнуть):
.h
class OtherClass{
    int max_index = 1000;
    int index = 0;
    Genre **genres = new Genre*[max_index];
public:
    ~OtherClass() { delete[] genres; }
    void memMove(); 
};

.cpp
void OtherClass::memMove() {
    Genre **new_g = new Genre*[this->max_index *= 2];
    
    for(int i = 0; i < this->index; i++)
        new_g[i] = this->genres[i];
    
    delete[] genres;
    this->genres = new_g;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы