Lista, sortowanie

0

Ktoś może wie dlaczego po zaimplementowaniu pętli nagle przestaje to działać, ma ktoś pomysł jak to naprawić .

///STRUKTURA KSIAZEK
typedef struct Ksiazka
{
    int id;
    char autor[MAX];
    char tytul[MAX];
    char rok_wydania[MAX];

} KSIAZKA;

void wypisanie_ksiazki_g(KSIAZKA *dodaj_ksiazka,int x,int y) ///PROBLEM Z IMPLEMENTACJA PETLI
{

    FILE *g = fopen("g.txt","a");
    fseek(g, 0, 0);
    char pomoc[strlen(dodaj_ksiazka->tytul)];
    char ksiazka[strlen(dodaj_ksiazka->tytul)];
    int i;


    for(i=0;i<20;i++)
    {

        strcpy(ksiazka,dodaj_ksiazka->tytul);

        dodaj_ksiazka++;


        if(strcmp(ksiazka,dodaj_ksiazka->tytul) >= 0)
            {
                strcpy(pomoc,ksiazka);
                strcpy(ksiazka,dodaj_ksiazka->tytul);
                strcpy(dodaj_ksiazka->tytul,pomoc);
            }

        fprintf(g,"-%s\n",ksiazka);
        fprintf(g,"-%s %s\n",dodaj_ksiazka->tytul,dodaj_ksiazka->autor);
        dodaj_ksiazka++;
    }


}

```
0

Co robi instrukcja dodaj_ksiazka++ ?
I czemu występuje dwa razy?
Zmienna dodaj_ksiazka jest wskaźnikiem, to jak możesz go inkrementować?

0

Na co wskazuje pointer dodaj_ksiazka, czemu go dwa razy Inkrementuejsz?

0
  char ksiazka[strlen(dodaj_ksiazka->tytul)];
...
    for(i=0;i<20;i++)
    {
        strcpy(ksiazka,dodaj_ksiazka->tytul);
        ... 
        dodaj_ksiazka++;
    }

Co się stanie, gdy druga książka (lub którakolwiek z następnych) będzie miała dłuższy tytuł od pierwszej?

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