我有以下代码:
Data* t = (Data*)(malloc(len_part_ * sizeof(Data)));
memcpy(t, data_[i], len_temp_ * sizeof(Data));
std::swap(t, data_[i]);
free(t);
问题是"堆已损坏" free(t)
中有时会出现错误。在这些时候参数是:
sizeof(Data) = 8;
len_part_ = 24;
len_temp_ = 8;
的信息:
data_
字段为Data**
,而Data
定义为typedef std::pair<int,int> Data;
答案 0 :(得分:0)
您只能将free
准确传递给malloc
。您的代码未显示data[i]
来自哪里,但我敢打赌它不是malloc
。