我在这里的字符串分配有错误。这是我们编写的用于存储从 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++ 中使用非常频繁。