explicitly included string.h for memset