如何修复对象在释放后可能修改的malloc错误
How to fix malloc error that object probably modified after being freed
我正在使用new(malloc(来malloc数组,但存在一个错误,即对象在释放后被修改
void merge(int low, int high)
{
int *tmp = new int[high-low+1];
// int *tmp = (int*) malloc (sizeof(int) * (high-low+1));
int mid = (low + high) / 2;
int i = low, j = mid + 1, k = low;
while (i <= mid && j <= high)
{
if (A[i] < A[j]) tmp[k++] = A[i++];
else tmp[k++] = A[j++];
}
while(i <= mid) tmp[k++] = A[i++];
while(j <= high) tmp[k++] = A[j++];
for (int t = low; t <= high; t++) A[t] = tmp[t];
delete[] tmp;
// free(tmp);
}
malloc:释放对象的校验和不正确 0x7fb880402ab0:可能在释放后进行了修改。 损坏的值:0x300000000 malloc:*** 在malloc_error_break中设置断点进行调试
可能是由于tmp[k++]
它超过了tmp
的长度引起的。
相关文章:
- 如果没有malloc,链表实现将失败
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- malloc() 可能出现内存泄漏
- 独立读取-修改-写入顺序
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 如何从子成员函数修改父公共成员变量
- 修改 VS Code 中的默认C++代码段
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 如何使用递归打印修改后的星号三角形图案
- 已修改的LinkedList未在文本文件本身中更新
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 如何修复对象在释放后可能修改的malloc错误