无法在mergeSort函数中释放内存

时间:2018-10-01 06:38:32

标签: c memory

我试图用C写一个mergeSort函数。 在函数中,我有指针Failed to resolve: firebase-database-15.0.0 a;他们的价值是不同的。但是我无法释放tmp指向的内存。

(我在Windows 10的tmp文件中用VS2013编写)

breakpoint result before I run the free function.bmp

.cpp

2 个答案:

答案 0 :(得分:3)

当您分配给tmp(例如tmp = atmp = t)时,则会丢失原始指针。

如果未为a分配malloc,则将新指针传递到free将导致undefined behavior

作为一种可能的解决方案,请保留可传递给free的原始指针的副本。

答案 1 :(得分:1)

您要在此处为​​tmp分配一个新值:

tmp = t;

因此,tmp失去了其原始值,该原始值指向分配的内存位置,而现在指向未使用malloc分配的另一个内存。因此,您无法使用free()

释放它