#include<iostream>
#include<conio.h>
#include<string.h>
#define OK 1
#define MAXSIZE 100
using namespace std;
typedef int Status;
typedef struct
{
char name[5];
float price;
}Book;
typedef Book ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
LNode *A;
Status InitList(LNode *L)
{
L=new LNode;
if(!L)
exit(-1);
else
(*L).next=NULL;
return OK;
}
int main()
{
LNode *L;
InitList(L);
cout<<(*L).next;
//下面三行是测试代码,同样给指针赋值为NULL,测试结果,当屏蔽上面代
//码的时候发现,可以出现值。不屏蔽的话,则溢出,执行cout<<(*L).next溢出
int *a;
a=NULL;
cout<<a;
getch();
return 0;
}
给链表结点初始化,给next指针赋值为NULL,并输出next指针地址,运行后程序溢出。
我为了探究原因,设计了指针A给A指针赋值NULL,单处运行测试语句,
程序并没有溢出,并且显示出了一个值。
为什么呢,都是赋值NULL,都是输出指针,区别为啥这么大?