Dynamicky alokované seznamy v jazyce C: Porovnání verzí
Z Milan Kerslager
								
												
				m (Syntax on)  | 
				m (+kat)  | 
				||
| Řádka 39: | Řádka 39: | ||
;Příklad 2: Napište program, který vypíše zadaný soubor s obráceným pořadím řádků (jako program ''tac'').  | ;Příklad 2: Napište program, který vypíše zadaný soubor s obráceným pořadím řádků (jako program ''tac'').  | ||
| + | |||
| + | [[Kategorie:Jazyk C v Linuxu]]  | ||
Aktuální verze z 6. 4. 2009, 20:40
#include <stdio.h>
#define MAX 10
typedef struct struct_polozka {
        long int data;
        struct struct_polozka *dalsi;
} polozka;
int main()
{
        polozka *prvni, *aktualni;
        char buffer[MAX];
        // alokace (prvni) polozky
        prvni = malloc(sizeof(polozka));
        prvni->data = 0;
        prvni->dalsi = NULL;
        aktualni = prvni;
        // naplneni polozek
        while (fgets(buffer,MAX,stdin) != NULL) {
                aktualni->data = strtol(buffer,NULL,10);
                aktualni->dalsi = malloc(sizeof(polozka));
                aktualni = aktualni->dalsi;
                aktualni->data = 0;
                aktualni->dalsi = NULL;
        }
        // vypsani polozek
        aktualni = prvni;
        while (aktualni->dalsi != NULL) {
                static int i=1;
                printf("polozka %d: %ld\n", i++, aktualni->data);
                aktualni = aktualni->dalsi;
        }
}
Cvičení
- Příklad 1
 - Napište program, který do paměti načte zadaný soubor a pak jej teprve vypíše.
 
- Příklad 2
 - Napište program, který vypíše zadaný soubor s obráceným pořadím řádků (jako program tac).