找Bug
来源:互联网 发布:python算术运算符 编辑:程序博客网 时间:2024/04/28 16:28
int CopyStringCount(const char* Str)
{
int nCount = 0;
char* pBuffer;
pBuffer = new char[_MAX_PATH];
strcpy(pBuffer,Str);
while(;pBuffer ;pBuffer++)
if(pBuffer == '//') nCount ++;
return nCount;
}
Count the number of ‘/’ in ginven string.
1. Never judge whether the space allocation is successful after using the new operator.
Correction:
char *pBuffer=NULL;
pBuffer=new char[_MAX_PATH];
if (pBuffer = = NULL)
return 0;
2. ‘strcpy’ is a dangerous function which may cause buffer overrun. Suggest using ‘strncpy’ to replace it. And comparation between _MAX_PATH and the length of Str is necessary.
Correction:
int len = strlen(Str);
if (len >= _MAX_PATH)
return 0;
strncpy(pBuffer, Str, len);
3. “while” expression is wrong. What’s more, the control variable shall be “*pBuffer”, not “pBuffer”.
Correction:
while(*pBuffer++)
4. In “if” expression, the variable shall be “*pBuffer”, not “pBuffer”.
Correction:
if (*pBuffer = = NULL)
5. Forgot to deallocate the memory which allocated by new operator. And after deallocate, the pBuffer pointer shall be evaluated with NULL, in order to avoid it becoming a wild pointer.
Correction:
delete []pBuffer;
pBuffer = NULL;
6. If add a ASSERT(Str != NULL) at the entry of the function, will be better.
- 找Bug
- 找BUG
- 找bug的体会
- 程序找BUG
- 应用程序找bug
- VC++找Bug
- 通过游戏找BUG
- 自动找bug插件
- 找bug的感悟
- 找bug记
- 找bug记(2)
- 找Bug的历程
- 找了三天的BUG
- 如何找更多的bug
- 使用map文件找bug.
- 通过版本控制找bug
- php 找bug小技巧
- 找bug的小技巧
- Windows应用程序练习
- 防止access数据库文件下载
- 传统国货官方网站(收集中)
- 8.7及未来的三天,酱油引导人民
- 用 CSS 实现的阴影效果
- 找Bug
- (sql) CEILING函数, FLOOR 函数
- STL_全排列
- C#更新SQL数据
- VB_改变内存中变量的值
- 在Word里使用部分正则表达式
- System.getProperty
- zz 谁在创建session
- CORBA入门