Несовместимые типы - это потому, что массив уже является указателем?

В приведенном ниже коде я создаю объект, основанный на структуре книг, и чтобы он содержал несколько объектов "книги» Я устанавливаю массив (объект, который определен / инициирован, то есть). Однако всякий раз, когда я проверял свои знания об указателях (практика помогает) и пытался создать указатель, указывающий на созданный объект, он выдает мне ошибку:

C: \ Users \ Justin \ Desktop \ Project \ wassuip \ main.cpp | 18 | ошибка: несовместимые типы в присваивании 'книги ккниги * [4] '| *

Могу я спросить, это потому, что объект book_arr [] уже считается указателем?это массив? Спасибо (новичок в C ++ и просто хочу проверить). *

#include 
#include 
#include 

#define NUM 4

using namespace std;

struct books {
    float price;
    string name;
    int rating;
} book_arr[NUM];

int main()
{
    books *ptr[NUM];
    ptr = &book_arr[NUM];

    string str;

    for(int i = 0; i < NUM; i++){
        cout < "Enter book name: " < endl;
        cin >> ptr[i]->name;
        cout < "Enter book price: " < endl;
        cin >> str;
        stringstream(str) < ptr[i]->price;
        cout < "Enter book rating: " < endl;
        cin >> str;
        stringstream(str) < ptr[i]->rating;
    }

    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос