after implementing speller.c with a trie and a hashtable, I thought I'll give it a shot to use memory mapping. After reading the man page and some further research I had an idea of what to do and adapted my code where I used malloc() to this
It compiles but running it returns me this error:
==16185==ERROR: UndefinedBehaviorSanitizer failed to allocate 0x1000 (4096) bytes of InternalScopedBuffer (error code: 12) ERROR: Failed to mmap
However, if I pass it to check50 it passes all tests.
What I already know is, that using mmap() the way I do it is a horrible waste of memory, as I allocate 4096 Bytes for each node, where I only need 56 (that's what sizeof(node) returns). That should be the reason why it is not running in my cs50 IDE but does so if I pass it to check50?
Can I just allocate 143000ish*sizeof(node) Bytes via mmap() and then somehow assign the addresses manually? Or what is the way to go there?
Thanks for your help.