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

6657 内存分配C语言的malloc函数

请教个问题

1. 代码在执行内存分配函数malloc过程中,不跳出来;暂停仿真器后,停在如下位置;但是单步不向下执行。

   按理说,如果堆栈空间不够,应该返回0,而不是进入死循环。

   E:\ti\ccsv6\tools\compiler\c6000_7.4.8\lib\src\memory.c

Shine:

加大堆栈后还是不行么?

user4827424:

回复 Shine:

加大了还是不行,我测试了下,如果堆栈空间不够,会返回0,可以判断分配不成功,不会跳不出来?

不知道是哪里有数据越界还是什么原因?有方法测试是否有数组越界吗?

Shine:

回复 user4827424:

请问malloc函数是怎么调用的?

user4827424:

回复 Shine:

1. 您好,如下调用,其他类似,包含头文件#include <stdlib.h>

short*pnLoadMagRectFlag = (PIXELTYPE*)malloc(nTemplateSize*sizeof(short));  if(pnLoadMagRectFlag==0x00) { malloc_error++; return; }

……

free(pnLoadMagRectFlag);

Shine:

回复 user4827424:

PIXELTYPE这个是什么数据类型?也是short型?

user4827424:

回复 Shine:

是的

Shine:

回复 user4827424:

请问是裸机程序还是bios程序?方便发个简单的测试程序么?

Shine:

回复 user4827424:

感谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » 6657 内存分配C语言的malloc函数
分享到: 更多 (0)