memset() jest ok. Pamiętaj tylko, że ostatni argument, to ilość bajtów w tablicy, więc dla tablicy intów będzie to tak:
int * tab = malloc(0x100);
memset(tab, 0, 0x100 * sizeof(int));
a także, że drugi argument jest potem konwertowany na unsigned char (czyli bajt) więc nie wpiszesz tam wartości większej od 255, jeśli byś kiedyś chciał.
Możesz również wykorzystać fakt, że pamięć otrzyana od systemu jest wyzerowana. Możesz zadeklarować tablicę statyczną lub globalną. Będzie ona zainicjowana zerami. Możesz też poprosić system o nową pamięć. Niestety nie wiem, jak w tym przypadku zachowuje się malloc(). Możliwe, że pamięć otrzymana tą funkcją nie będzie zawsze wyzerowana, bo z tego, co kojażę ona nie zawsze prosi system o pamięć - zazwyczaj system może przydzielić jedynie 4096 bajtów i ich wielokrotność.