[=] use zmalloc instead malloc