私は始めており、ポインターで理解できないことがあります。理由がわからないエラーを返す次のコードがあります。
std::string key = "myKey";
const unsigned char* aesKey = reinterpret_cast<const unsigned char *> (key.c_str());
// Executing some stuffs
delete aesKey;
コードが最初に実行されたときはすべて正常に動作しますが、2 回目にはエラーが発生しますが、行がない場合は発生しませんdelete
(代わりに、メモリ リークが発生し、最悪です)。
なぜこれが機能しないのか、誰かが説明してくれますか?
以下のサンプルは、同じコンテキスト (同じ方法など) で正常に動作しています。
unsigned char* test = new char;
//doing some stuff
delete test;