malloc是我的大麻烦,一不小心就栽倒

int MinNextStr(const char* src,char* &minnext)
{   
      int srclen=strlen(src);    
      minnext=(char*)malloc((srclen+1)*sizeof(char));    
      if(minnext==NULL)    {
                      
                      return -1;    

      }
}
  1. 将源字符串加const,表明其为输入参数
  2. 使用指针引用(char* &minnext),防止因为局部变量生存期的问题导致内存被释放
  3. strlen函数在计算字符串的时候会忽略'\0',所以在声明一段长度等于src的空间时,记得加1哦
  4. 判断内存是否申请成功
if(minnext==NULL){
          return -1;
}

 

 对内存操作的考查主要集中在:
  (1)指针的理解;
  (2)变量的生存期及作用范围;
  (3)良好的动态内存申请和释放习惯。

posted @ 2013-09-25 15:39  诗宝smile  阅读(134)  评论(0编辑  收藏  举报