I just found glut source code from GLT. One definition I do not get is,
static GLUquadricObj *quadObj;

This variable, quadObj, is initialized inside the func of "static void initQuadObj(void);",
quadObj = gluNewQuadric();
however if it is static, when I draw more than 2 spheres for example, then both/all of them would use the same quadObj inside gluSphere(quadObj, ..);

If this is correct then how does the glut library frees each of their memory?

May be this is a silly question, but any tips would be very appreciated.