如下一段程序:
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
int main()
{
int *p1;
int *p2;
int i;
p1=(int*)malloc(40);
int b=13;
for(i=0;i<b;i++)
{
p1[i]=i;
printf("%d\n",p1[i]);
}
int a;
a=_msize(p1);
printf("%d\n",a);
}
有两个不懂的地方请教一下:
(1)开辟的是40个字节的空间,为什么程序允许b可以大于20也不报错?
(2)当b<=12时,a是40,当b>=13时,a是72,这是为什么呢?
求指点,谢谢
--
FROM 124.126.201.*