动态分配内存问题求分析
#include <stdio.h>
#include <stdlib.h>
struct xue
{
int age;
char *name;
};
int main(void)
{
struct xue t,t1;
t.age=10;
if((t.name=(char *)malloc(sizeof(char)))==NULL)//不在堆区分配也行,我就是想研究一下malloc
{
printf("错误");
return 0;
}
t.name="huzli";
t1.age=20;
if((t1.name=(char *)malloc(sizeof(char)))==NULL)
{
printf("错误");
return 0;
}
t1.name="sjl";
printf("%3d,%3s,%3d,%3s",t.age,t.name,t1.age,t1.name);
free(t1.name);//这两行free()不加就不会报错,为啥?
free(t.name);
return 0;
}