zoukankan      html  css  js  c++  java
  • 附加题程序找bug

     1 private:
     2         void Resize(int sz){
     3             if(sz<=0){
     4                 return;
     5             }
     6             if(maxSize != sz){
     7                 T *arr = new T[sz];
     8                 if(arr == NULL){
     9                     return;
    10                 }
    11                 int n = size +1;
    12                 T *src = data;
    13                 T * des = arr;
    14                 while(n--){
    15                     *des++ = *src++;
    16                 }
    17                 delete[] data;
    18                 data = arr;
    19                 maxSize = size;
    20             }
    21         }

    源程序如上图,现在开始找bug。

    bug一:maxSize没有定义,无法判断maxSize != sz。

    bug二:size没有定义,使用size+1没有道理。

    bug三:T没有定义是结构体或者是其它什么,就去创建对象了。

    bug四:data也没有定义。

    bug五:由于size没有定义,所以n也无法确定。在使用while(n--)时会存在错误

    bug六: *des++ 存在越界的风险。(博客评论中很多人提出的bug)

    bug七:没有定义的data的情况下就使用delete[ ],存在一定的风险。

    在找bug的过程中,也是学习的过程。由于水平有限,希望老师多批评指正。感谢杨老师和邹老师给我这次找bug的机会。

  • 相关阅读:
    UVa10779
    UVa10779
    C++ 内存管理学习笔记
    c++ 学习笔记
    AcWing 275 传纸条
    I
    Tree HDU6228
    Lpl and Energy-saving Lamps
    C
    Secret Poems
  • 原文地址:https://www.cnblogs.com/wwd1993/p/7701625.html
Copyright © 2011-2022 走看看