TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678基于sys/Bios的工程malloc动态分配二维数组问题,求高手指点

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失败的原因一般都是输入的地址不正确,建议你字节检查一下释放的地址。

赞(0)
未经允许不得转载:TI中文支持网 » C6678基于sys/Bios的工程malloc动态分配二维数组问题,求高手指点
分享到: 更多 (0)