rendered paste bodyhtable_listitem *htable_lookup(htable_t *table, const char *key){ unsigned int hash_pos = 0; htable_listitem *item, *latest, *new_item; // ochrana pred spatnym vstupem if(table == NULL || key == NULL) return NULL; // spocitani mista pro ulozeni hash_pos = hash_function(key,table->htable_size); // nacteni prvniho ukazatele z daneho mista latest = item = table->vector[hash_pos]; while(item != NULL) { // pokud se rovnaji oba klice, vrati se dany prvek if(!strcmp(item->key,key)) return item; latest = item; item = item->next; } // alokovani noveho prvku new_item = malloc(sizeof(htable_listitem)); if(new_item == NULL) return NULL; new_item->data = 0; // kopirovani klice do promenne new_item->key = malloc(strlen(key)+1); if(new_item->key== NULL) { free(item); return NULL; } strcpy(new_item->key, key); new_item->next = NULL; // pokud je prvni ukazatel hash_table NULLovy // priradi se prvek do nej, jinak se priradi do 'next' posledniho prvku if(item == latest) table->vector[hash_pos] = new_item; else latest->next = new_item; return new_item;}