Memory, tools, and overflows

This is still not clear.

Are you saying that you declared a pointer and then called memset on it? Something like the following:

DHCP_MAP_type * ptr;
memset( ptr, 0, sizeof(DHCP_MAP_type));

If that is the case, it is wrong because no memory is allocated for DHCP_MAP_type and likely ptr will be initialized to NULL if it is global.

Glad that your issue is resolved.