C6678基于sys/Bios的工程malloc动态分配二维数组问题,求高手指点
如图所示动态分配二维数组
出现的问题是obs_nav_common*7的obs二维数组与obs_nav_common*25的nav二维数组元素中出现地址复用,导致obs中的数据被改写或者覆盖。同样obs_nav_common*25的nav二维数组的元素与3*sv_data_count的sv_position_test二维数组出现地址冲突,导致nav中的元素被改写或者覆盖。而4*sv_data_count的sv_llh_position二维数组与3*sv_data_count的sv_position_test二维数组没有出现地址冲突。急求高手指点,在下谢谢!
Gangping Li:
回复 Adam Yao94020:
Adam Yao,谢谢你,问题如你所说,已经解决好了!
Gangping Li:
回复 Adam Yao94020:
Adam Yao ,你好,我用了很多malloc动态分配数组,在后面要将malloc分配空间给free掉,在free这些空间之中出现了
ti.sysbios.heaps.HeapMem: line 345: assertion failure: A_invalidFree: Invalid freexdc.runtime.Error.raise: terminating execution
我使用的free方式是这样的:
if(p)
{
free(p);
p = NULL;
}
你能给出一点建议么?谢谢咯
Adam Yao94020:
回复 Gangping Li:
free失败的原因一般都是输入的地址不正确,建议你字节检查一下释放的地址。