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

Przejdź do nawigacji Przejdź do wyszukiwania
połączenie dwóch skruktur w jedną
(aktualizacja)
(połączenie dwóch skruktur w jedną)
<source lang="c">
static string str;
static struct string_data
{
char c;
struct string_data *next;
};
typedef struct _string
{ char c;
{
struct string_data_string *next;
FILE *(*wypisz)(FILE*);
void (*wpisz)(const char*);
} *string;
void wpisz_do_str(const const char *new_string)
{
for(;new_string && *new_string;++new_string)
Dla uproszczenia zapisu skorzystaliśmy z konstruktora klasy <tt>string</tt>. Tego jeszcze nie mamy, więc czas na niego:
<source lang="c">
/* konstruktor */
struct string_data create_string_data(const const char *initial)
string create_string(const const char *initial)
{
structstring string_datanew_string = malloc(sizeof *new_string);
new_string.wypisz = wypisz_str;
struct string_data *tmp = &new_string;
new_string.wpisz = wpisz_do_str;
for(;initial && *initial;++initial)
{
struct string_data_string new_char;
new_char->c = *new_string;
new_char->next = NULL;
return new_string;
}
/* deskruktor */
 
string create_string(const const char *initial)
{
string new_string = malloc(sizeof *new_string);
new_string.wypisz = wypisz_str;
new_string.wpisz = wpisz_do_str;
return new_string;
}
 
void free_string(string *s)
{
Anonimowy użytkownik

Menu nawigacyjne