gpt4 book ai didi

c++ - 删除指针时出错

转载 作者:太空狗 更新时间:2023-10-29 23:36:58 25 4
gpt4 key购买 nike

我刚开始,有些东西我用指针不明白。我有以下代码返回一个我不知道为什么的错误:

std::string key = "myKey";    
const unsigned char* aesKey = reinterpret_cast<const unsigned char *> (key.c_str());

// Executing some stuffs

delete aesKey;

代码第一次执行时一切正常,但第二次我得到一个错误,如果我没有 delete 行我就不会得到这个错误(相反我有内存泄漏,非常糟糕)。

有人可以向我解释为什么这不起作用吗?

下面的示例在相同的上下文中工作正常(相同的方法,...)

unsigned char* test = new char;
//doing some stuff
delete test;

最佳答案

首先:您不拥有该 C 字符串,因此delete[] 不属于您。 std::string 仍然拥有它,稍后将删除[]

第二:数组是用delete[]删除的,而不是delete。所以你无论如何都使用了错误的运算符。

关于c++ - 删除指针时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com