![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dopiero zaczynam nauke C, więc nie dziwcie się, że pytanie jest takie proste:)
Mam liste danych osobowych kilku osób (tzn. imie i nazwisko). W jaki sposób zrobić aby po kolei wyświetlał mi te dane? Nie wiem nawet w czym mam to zapisać (tablica, struktura?). Kurcze, dopiero teraz sobie uświadamiam, jakie php jest proste w porównaniu do C |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 24.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam
ja podam przyklad ale nie jestem pewiem czy nie ma przypadkiem bledow Kod typedef struct ListElmt_
{ void *data; struct ListElmt_ *next; } ListElmt; typedef struct List_ { int size; int (*match)(const void *key1, const void *key2); void (*destroy)(void *data); ListElmt *head; ListElmt *tail; } List; void list_init(List *list, void (*destroy)(void *data)) { list->size = 0; list->destroy = destroy; list->head = NULL; list->tail = NULL; return; } void list_destroy(List *list) { void *data; while (list_size(list) > 0) { if (list_rem_next(list, NULL, (void **)&data) == 0 && list->destroy != NULL) { list->destroy(data); } } memset(list, 0, sizeof(List)); return; } int list_ins_next(List *list, ListElmt *element, const void *data) { ListElmt *new_element; if ((new_element = (ListElmt *)malloc(sizeof(ListElmt))) == NULL) return -1; new_element->data = (void *)data; if (element == NULL) { if (list_size(list) == 0) list->tail = new_element; new_element->next = list->head; list->head = new_element; } else { if (element->next == NULL) list->tail = new_element; new_element->next = element->next; element->next = new_element; } list->size++; return 0; } int list_rem_next(List *list, ListElmt *element, void **data) { ListElmt *old_element; if (list_size(list) == 0) return -1; if (element == NULL) { *data = list->head->data; old_element = list->head; list->head = list->head->next; if (list_size(list) == 1) list->tail = NULL; } else { if (element->next == NULL) return -1; *data = element->next->data; old_element = element->next; element->next = element->next->next; if (element->next == NULL) list->tail = element; } free(old_element); list->size--; return 0; } przeanalizuj ten przyklad dokladnie a wszytko stanie sie jasne, mam nadzieje ze cos to pomoglo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) tylko od ciebie zalezy jak to wykorzystasz |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:53 |