malloc是我的大麻烦,一不小心就栽倒
int MinNextStr(const char* src,char* &minnext) { int srclen=strlen(src); minnext=(char*)malloc((srclen+1)*sizeof(char)); if(minnext==NULL) { return -1; } }
- 将源字符串加const,表明其为输入参数
- 使用指针引用(char* &minnext),防止因为局部变量生存期的问题导致内存被释放
- strlen函数在计算字符串的时候会忽略'\0',所以在声明一段长度等于src的空间时,记得加1哦
- 判断内存是否申请成功
if(minnext==NULL){ return -1; }
对内存操作的考查主要集中在:
(1)指针的理解;
(2)变量的生存期及作用范围;
(3)良好的动态内存申请和释放习惯。