int *类型的malloc是不需要free的吗?
#include <stdio.h>
#include <stdlib.h>
main()
{
int *g_link;
int *buf;
int i;
g_link=(int *)malloc(10);
buf=g_link;
/* free(buf); 位置1 */
for (i=0;i<=9;i++)
{
*g_link=100000+i;
g_link++;
}
for (i=0;i<=9;i++)
{
printf("%d ",*p+i);
}
/* free(buf); 位置2 */
}
在上面的程序中,如果在位置2进行free,则会报错。
而在位置1进行free则不会出错,并且照常能在free后的地址中进行赋值。
难道说int *类型的malloc是不需要free的吗?