benhoyt / ht Goto Github PK
View Code? Open in Web Editor NEWSimple hash table implemented in C
License: MIT License
Simple hash table implemented in C
License: MIT License
Dear colleagues,
I am receiving the following error when compiling this program:
sles15-sp3-sca:~/hashtable # gcc ht.c -o ht
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/crt1.o: in function `_start':
/home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/x86_64/start.S:104: undefined reference to `main'
collect2: error: ld returned 1 exit status
Can you kindly verify? Thank you.
The iterator has an issue, "ht_iterator" returns the address of a variable allocated in the stack, so when it goes out of scope it becomes invalid.
Nice work though.
Cheers,
Nicola
Coming here from reading you excellent article and trying to implement this in Oberon-2.
I was wondering when the table expands there should not be any duplicate keys and
therefore the line: if (strcmp(key, entries[index].key) == 0) {
in ht_set_entry
is not needed.
We can just skip to next free slot?
Do I think right here?
if (size + size < size) {
return NULL; // size too big; avoid overflow
}
Maybe:
if (size > SIZE_MAX / 2) {
return NULL; // size too big; avoid overflow
}
Hi!
Thanks for your great implementation and explanation! I have a quick question: It seems like this hash table does not support keys of type int (or long, etc)? So key type is only char*
, correct? Would it be hard to expand to support different key types?
Regards
Olle
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.