Компилятор выдал неожиданную ошибку при приведении указателя как структуры в callo c () - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу создать динамический c массив указателей, каждый из которых указывает на различную структуру, и компилятор выдает мне сообщение об ошибке: ожидаемый ")" перед "книгой". Я пробовал struct * book, но все же не получается , Почему выдает эту ошибку и как ее исправить?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
    char book_name[32];
    char book_genre[32];
    char author[32];
    int page_count;
    float price;

}Sbook;
typedef struct
{
    char library_name[32];
    Sbook * bookp;
    int books_count;
}Slib;
void addexistingBooks(Slib library, Sbook book, int i);
int main()
{
    Slib library;
    Sbook book;
    int i=0;
    printf("Enter amount of books inside the library: ");
    scanf("%d", &(library.books_count));
    library.bookp = (Sbook * book)calloc(library.books_count,sizeof(struct book*));
    addexistingBooks(library, book, i);
    free(library.bookp);
    return 0;
}
void addexistingBooks(Slib library, Sbook book, int i)
{
    for(i=0;i<library.books_count;i++)
    {
        printf("Enter the name of the book: \n");
        fgets(library.bookp[i].book_name,32,stdin);
        printf("Enter the genre of the book: \n");
        fgets(library.bookp[i].book_genre,32,stdin);
        printf("Enter the author of the book: \n");
        fgets(library.bookp[i].author,32,stdin);
        printf("Enter the page count of the book: \n");
        scanf("%d", &(library.bookp[i].page_count));
        printf("Enter the price of the book: \n");
        scanf("%f", &(library.bookp[i].price));
        fflush(stdin);
    }
}

...