【链接】由free()引发的对链表的探究(2):点击打开链接
指针型
【程序】
#include<stdio.h>
#include<stdlib.h>//malloc();free();calloc();
typedef struct list
{
int a;
struct list *next;//这里用list来定义也可以
}A;
int main()
{
A *b;//指针用"->"来调用子量
/*
printf("%d\n",b);//默认的:-858993460
printf("%c\n",b);//默认的:?
printf("%d\n",b->a);//运行出错
printf("%c\n",b->a);//运行出错
printf("%d\n",b->next);//运行出错
*/
/*
b=NULL;//b赋值NULL
printf("%d\n",b);//0
printf("%c\n",b);//' '
printf("%c\n",b->a);//运行出错
printf("%d\n",b->a);//运行出错
*/
/*
b->a=2;//b赋值2 NULL
b->next=NULL;
printf("%d\n",b);//运行出错
printf("%c\n",b);//运行出错
printf("%c\n",b->next);//运行出错
printf("%d\n",b->a);//运行出错
*/
/*
//b=NULL//有这句free()下前两条语句有效为0和' ',无的话也是运行错误
free(b);//void free(void *p)
printf("%d\n",b);
printf("%c\n",b);
printf("%c\n",b->a);//运行出错
printf("%d\n",b->a);//运行出错
*/
return 0;
}
【结论】