ここで文字列の割り当てにエラーがあります。これは、URL から取得したデータを格納するためにコーディングした関数です。編集:データノード構造
struct node
{
string url;
std::string* data;
struct node* next;
struct node* prev;
};
void RandomCache::cachePage(string* page_data, string url)
{
datanode *page_node= (datanode*)malloc(sizeof(datanode));
page_node->url = url;
page_node->data = page_data;
page_node->next=NULL;
page_node->prev=NULL;
insertNode(page_node);
}
行 page_node->url = url が Double free または破損の原因であり、データは参照ではなく値によって渡されます。誰かが何がうまくいかないのか指摘できますか?
ありがとう、私は構造をクラスにしました、そして問題は完全に解決されました。ありがとう!しかし、malloc を使用した構造メモリ管理が C++ で問題になる理由については、まだ疑問に思っています。構造体は、c++ で非常に頻繁に使用されます。