我试图用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
答案 0 :(得分:3)
当您分配给tmp
(例如tmp = a
或tmp = t
)时,则会丢失原始指针。
如果未为a
分配malloc
,则将新指针传递到free
将导致undefined behavior。
作为一种可能的解决方案,请保留可传递给free
的原始指针的副本。
答案 1 :(得分:1)
您要在此处为tmp分配一个新值:
tmp = t;
因此,tmp失去了其原始值,该原始值指向分配的内存位置,而现在指向未使用malloc分配的另一个内存。因此,您无法使用free()