dostęp z funkcji do tablicy wskaźników na struktury w strukturze

0

Witam!

Mam taki nie skomplikowany kodzik:

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

#define IMIE 10
#define NAZWISKO 20
#define TYTUL 100
#define MAX_KSIAZEK 100
#define MAX_AUTOROW 3

typedef struct
{
    char imie[IMIE];
    char nazwisko[NAZWISKO];
    int rok_urodzenia;
}AUTOR;

typedef struct
{
    char tytul[TYTUL];
    int rok;
    float cena;
    AUTOR *autor[MAX_AUTOROW];
}KSIAZKA;

void czysc_wej(char *txt,FILE *wej);
void dodaj_ksiazke(KSIAZKA **ksiazka,AUTOR **autorzy,int *ilosc_ksiazek,int *ilosc_autorow,int ilu_autorow);
KSIAZKA pobierz_ks(void);
AUTOR pobierz_autora(void);
AUTOR *szukaj_autora(const AUTOR autor,AUTOR **autorzy,int ilosc_autorow);

int main(void)
{
    KSIAZKA *ksiazki[MAX_KSIAZEK];
    AUTOR *autorzy[MAX_AUTOROW*MAX_KSIAZEK];
    int ilosc_ksiazek=0;
    int ilosc_autorow=0;

    dodaj_ksiazke(ksiazki,autorzy,&ilosc_ksiazek,&ilosc_autorow,2);
    /*ZWOLNIC PAMIEC*/
    return 0;
}

void dodaj_ksiazke(KSIAZKA **ksiazka,AUTOR **autorzy,int *ilosc_ksiazek,int *ilosc_autorow,int ilu_autorow) /*zmienić void na int i dodać obsługę błędów*/
{
    int i,ilosc_autorow_2=0;
    AUTOR autor[ilu_autorow];
    AUTOR *autor_wsk;

    *(ksiazka+*(ilosc_ksiazek))=calloc(1,sizeof(KSIAZKA)); /*DODAĆ sprawdzenie czy udało się zadeklarować pamięć*/

    for(i=0;i<ilu_autorow;++i)
    {
        autor[i]=pobierz_autora();
    }

    **(ksiazka+*ilosc_ksiazek)=pobierz_ks();

    for(i=0;i<ilu_autorow;++i)
    {
        autor_wsk=szukaj_autora(autor[i],autorzy,*ilosc_autorow);
        if(autor_wsk==NULL)
        {
            *(autorzy+*ilosc_autorow+ilosc_autorow_2)=calloc(1,sizeof(AUTOR));
            **(autorzy+*ilosc_autorow+ilosc_autorow_2)=autor[i];
            **(ksiazka+*(ilosc_ksiazek)).autor[i]= *(autorzy+*ilosc_autorow+ilosc_autorow_2);
            ++ilosc_autorow_2;
        }
        else
        {
            *(autorzy+*ilosc_autorow+ilosc_autorow_2)=autor_wsk;
            **(ksiazka+*ilosc_ksiazek).autor[i]=autor_wsk;
            ++ilosc_autorow_2;
        }
    }

    *ilosc_autorow+=ilosc_autorow_2;
    ++(*ilosc_ksiazek);
}

I mam taki problem, że nie mam pomysłu jak przypisać wskaźnik do struktury AUTOR do tablicy wskaźników na struktury w strukturze KSIAZKA
próbowałem już chyba wszystkie kombinacje * . i -> i nie działa :(
dokładnie chodzi mi o fragment w funkcji dodaj_ksiazke:

void dodaj_ksiazke(KSIAZKA **ksiazka,AUTOR **autorzy,int *ilosc_ksiazek,int *ilosc_autorow,int ilu_autorow)
{
.......

**(ksiazka+*(ilosc_ksiazek)).autor[i]= *(autorzy+*ilosc_autorow+ilosc_autorow_2);

......

**(ksiazka+*ilosc_ksiazek).autor[i]=autor_wsk;
......
}

Z góry dzięki za wszelką pomoc

P.S. Jeżeli rzuci się komuś jakiś inny błąd to proszę nie mówić

0
kuba746 napisał(a)

P.S. Jeżeli żuci się komuś jakiś inny błąd to proszę nie mówić

...a napisać może?

0

Temat można zamknąć rozwiązałem swój problem
Powinno być tak:

(*(ksiazka+*(ilosc_ksiazek)))->autor[i]=*(autorzy+*ilosc_autorow+ilosc_autorow_2) 

1 użytkowników online, w tym zalogowanych: 0, gości: 1