4 ms·
I found a lot of bugs went away when I switched to STL (Standard Template Library) arrays and ditched managing my own memory. That's C++, I guess it's not avail
by GnarfGnarf 4y ago
I found a lot of bugs went away when I switched to STL (Standard Template Library) arrays and ditched managing my own memory. That's C++, I guess it's not available in straight C?
- krapp 4y ago>That's C++, I guess it's not available in straight C? No, because C doesn't have templates. The best you can do for a "vector" in C is macros like above, that also realloc, or write an API around structs for each type.
- GnarfGnarf 4y agoToo bad. STL deque's are non-contiguous, allow for much bigger arrays. I had an application that used vector<>, ran out of contiguous memory. deque<> solved the problem.
- augustk 4y agoIt's even easier if you use a garbage collector, like for instance libgc. Then you just replace (ptr) = malloc((n) * sizeof (ptr)[0]); with (ptr) = GC_MALLOC((n) * sizeof (ptr)[0]); in the macro and don't have to worry about calling free.