初级会员

- 积分
- 103
- 金钱
- 103
- 注册时间
- 2020-5-19
- 在线时间
- 23 小时
|

楼主 |
发表于 2020-6-27 20:14:54
|
显示全部楼层
本帖最后由 themuder 于 2020-6-27 20:43 编辑
抱歉之前问题叙述可能不够详细,下图左半部份是写在OV7725_camera_refresh(void)内的,在获得320x240资料后二值化成0,1存到ptrCameraFrame数组中,再经过一系列自己写的图像处理函数imageResizeOneHalf(u8 input, u8 output),onePt160x120(u8 input, u8 output),fitIntoLCD(u8 input, u8 output),writeCmdLCD(u8 input, u8 output),Disp(u8 input)。
在右半部份onePt160x120(u8 input, u8 output)中,最下面mymemcpy复制输入数组至输出数组用来确认该函数可行性。最后发现,在上图左半部份,当我在onePt160x120(u8 input, u8 output)函数前若使用动态内存分配,似乎会影响到函数内的动态内存分配,而导致内存溢出?反之,我将函数前的数组全部用静态宣告则可以运行(宣告部份省去),如下图。
也就是说,我在进入onePt160x120之前已经有了ptrLcdFrame及ptrMatlabFrame两个动态数组,进函数后又再分配pts动态数组,虽然在函数内有释放掉pts动态数组。所以猜想mymalloc动态内存分配在函数内及函数外同时使用会导致溢出?如果我想将全部数组使用动态内存分配,是否有更好的方法?
|
|