-
SCL_String
Public domain, header-only file to simplify the C programmer's life in their interaction with strings
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
afl is a very easy to use fuzzer, and pairs well with the above. It adds instrumentation to your program's branches, and then uses an algorithm to discover inputs that exercise many different paths through your program. If some of those paths leads in invalid or unexpected states, hopefully ASan or UBSan will catch them, alerting you about the problem and giving you a test input from which to debug. In your case I expect it will find particular sequences of allocate/free that lead to a bad state, though that's currently trivially easy to find anyway. The program I gave you, which simply reads from standard input and operates on it, is all you need to fuzz part of your library with afl.
If you're interested in another toolchain for testing your code, I maintain a portable, self-contained Mingw-w64 distribution called w64devkit with the latest GCC. While I do consider the quirks of MSVC when writing my C programs/libraries, I almost exclusively use my little kit when developing on Windows. Unfortunately it doesn't support any sanitizers, but you could still use it check for MSVC-isms and list GCC's warnings.