Я хочу создать динамический 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);
}
}