Итак, есть нормальное объявление в string.h:
extern void* memset(void *, int, size_t);
memset(&engine, 0, sizeof(engine));
Invalid arguments ' Candidates are: void * memset(void *, int, ?) '