7、请指出下列程序中的错误 (12分)
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define MAX_MSG_LEN 2048
BOOL    MaxMsgFlag = FALSE;
char *GetBuffer(int msg_len)
{
   char *ptr=NULL;
   int len =msg_len;
   ptr=(char *)malloc(len);
   if(ptr == NULL)
   {
      return NULL;
   }
   return ptr;
}int main(int argc, char* argv[])
{
   int msg_len ; 
   char *pMsg;
   if(MaxMsgFlag== TRUE)
   {
      msg_len = MAX_MSG_LEN;
    }
   pMsg = getBuffer(msg_len);
   strcpy(pMsg,"I love this game !");
   printf("%s",pMsg);
   return 0;
}答案:
<1> 函数getBuffer应该判断入参msg_len是否大于0。
<2> 函数main中msg_len没有赋初值
<3> 没有判断getBuffer是否申请成功。
<4> main函数里面 未释放内存
<5> Ptr==NULL,应该改写为null==ptr; MaxMsgFlag== TRUE也要做类似修改。