C/Napisy - własna implementacja: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
metoda wypisz nie zwraca żadnej wartości
użycie
Linia 69:
}
/* destruktor */
void free_string(string *s)
{
if((*s) == NULL)return; /* nie zwalniamy pustych napisów */
if((*s)->next)free_string(s->next); /* rekurencja - usuwamy kolejny napis */
free(*s); /* zwalniamy cały napis */
str = NULL; /* wyzerowanie wskaźnika na ostatni napis */
*s = NULL; /* zerujemy wskaźnik */
}
</source>
Linia 116 ⟶ 117:
 
Ideą listy znaków jest to, że może się rozszerzać, bez specyfikowania żadnego wymiaru "na sztywno". Inną jej cechą jest to, iż nie możemy jej indeksować.
===Użycie===
Możemy teraz wypróbować naszą implementację:
<source lang="c">
#include <stdio.h>
/* bibliotekę należy zapisać jako napisy.h */
#include "napisy.h"
int main(void)
{
string napis = create_string("Test implementacji łańcucha znaków.\n"); /* tworzenie napisu */
napis.wypisz(); /* wypisanie napisu */
free_string(&napis); /* zwolnienie napisu */
return 0;
}
</source>