Mam problem z utworzeniem bazy danych opartej na pojedynczo połączonej liście w C, nie z powodu połączonej koncepcji listy, ale raczej z polami łańcuchów w samej strukturze.Jak pracować z polami łańcuchowymi w strukturze C?
To jest zadanie w C i o ile wiem (jestem nowicjuszem), C nie rozpoznaje "łańcucha" jako typu danych.
To właśnie mój kod struktura wygląda następująco:
typedef struct
{
int number;
string name;
string address;
string birthdate;
char gender;
} patient;
typedef struct llist
{
patient num;
struct llist *next;
} list;
Myślałam dokonywania struct dla strun się tak, że można używać ich w struktury, tak:
typedef struct string
{
char *text;
} *string;
Potem będę musiał wykonać każdą z nich, gdy wymagane jest utworzenie nowych danych typu string (tablica znaków).
typedef struct string
{
char *text;
} *string;
int main()
{
int length = 50;
string s = (string) malloc(sizeof string);
s->text = (char *) malloc(len * sizeof char);
strcpy(s->text, patient.name->text);
}
Czy ktoś może mi pomóc rozwiązać ten problem?
Dziękuję.
Ty [nie powinieneś typować] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858#605858) używając malloc. –
Nie "pacjent" nie jest globalnie zadeklarowany, jest to typdef. Ale nawet jeśli byłby globalny, nie zainicjowałbyś go w ten sposób. – kralyk
@kralyk - poprawne, sam to sobie uświadomiłem i poprawiłem. – Attila