IAR430中的动态内存分配问题
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p1, *p2, *p3, *p4;
p1 = (int *)malloc(sizeof (int));
p2 = (int *)malloc(sizeof (int));
printf("p1: %#x\np2: %#x", p1, p2);
free(p1);
p3 = (int *)malloc(sizeof (int));
printf("\np3: %#x",p3);
p4 = (int *)malloc(sizeof (int));
printf("\np4: %#x",p4);
while(1);
}
这是我才IAR430中写的一段测试malloc函数的程序。
结果如下:
p1: 0x1106
p2: 0x110c
p3: 0x1112
p4: 0x1118
这就说明IAR430 中 free()函数无效吧?这样下去,只要malloc过的内存不都无法使用了?是不是malloc需要像windows系统一样的内存管理支持?