子字符串returnLocalVariable错误

这样编辑了获取子字符串 的功能函数,却悲剧的犯了个错误。 ouputString为局部变量指针,局部变量在程序堆栈中分配内存,暂时存储,这样的地址在执行完函数后就会被释放。所以返回的地址是错误的! 应该用static或者动态分配内存。 [c] char *subString(char *intputString , int start , int length) { if((start + length) > strlen(intputString))//越界了 return NULL; char outputString[MAX_LENGTH]; int i; for(i = start;i < start + length;i++) { outputString[i-start] = intputString[i]; } outputString[i - start] = ‘\0’; return outputString; } [/c]

文章作者: angelwhu
文章链接: https://www.angelwhu.com/paper/2014/05/29/substring-returnlocalvariable-error/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 angelwhu_blog