簡體   English   中英

通過函數修改二維數組后如何刪除?

[英]How to delete 2D Array after its modified by a function?

所以,我做了一個看起來像這樣的函數:

const char **myFunction(char *string)
{   
    char *bufCopy = new char[strlen(string)];
    strcpy(bufCopy,string);
    char *tmp = func1(bufCopy);

    const char **RetVector = new const char* [6];
    RetVector[0] = tmp;

    return RetVector;
}

func1(即strtok)修改了第一個參數,因此當我delete []時,它使我堆損壞。 我能做什么?

必須始終跟蹤bufCopy的原始分配,只有該原始分配才能被delete d。 tmp可能僅指向它的一部分(在緩沖區內某處),因此您無法delete它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM