1、从习惯上讲,一般指针在定义时需要初始化
FILE *file = NULL;
char *g_servicename = NULL;
2、你写的不叫释放。
首先看你给g_servicename是怎么复制的。因为是个指针,一般可能是malloc或者new分配的,是否有别处已经free或delete了,这个叫释放。
如果已经有别处释放了,则直接将其赋值为NULL即可,否则需要free或delete。
servicename = 0与servicename = NULL等价,与servicename = ""不等价。