分享
三行代码  ›  专栏  ›  技术社区  ›  Pressing_Keys_24_7

C++中内存泄漏的消除

c++
  •  0
  • Pressing_Keys_24_7  · 技术社区  · 5 天前

    char* substring(char* source, int startIndex, int endIndex)
    {
        int size = endIndex - startIndex + 1;
        char* s = new char[size+1];
        strncpy(s, source + startIndex, size);
        s[size]  = '\0';
        return s;
    }
    

    但是,在通过Valgrind检查之后,它会导致一些内存泄漏。当我删除a0时,程序不工作。我该如何处理这个问题?谢谢。

    我做了一个编辑:-

    char* game1 = substring(csv, 0, x[0]);
    delete[] game1;
    
    1 回复  |  直到 5 天前
        1
  •  2
  •   BRUCE    5 天前

    问题就快到了 char *game1 = new char[10]

    尝试添加 delete[] game1;

    之前

    game1 = a0;
    

    只是宣称

    char *game1;