最近的两次数据结构实验,在调试过程中都出现了如“0xC0000005:写入位置0x00000000 时发生访问冲突”类似的问题,所以想归纳一下出现这种问题的可能原因,便于以后程序的调试。
一般出现这种访问冲突的问题最常见的可能原因就是数组越界、未正确初始化指针(导致出现空指针、野指针等)以及堆栈出现问题,所以,当出现这种问题时首先应检查指针等是否正确初始化、是否越界。
在我数据结构二叉树的实验中,访问冲突的问题就出在指针上。
对于二叉树的先序递归构造:
先看如下代码:
void CreateBiTree(BiTNode *T)
{
char ch;
scanf("%c",&ch);getchar();
if(ch=='*')
T=NULL;
else{
if(i==0);
else{
T=(BiTree)malloc(sizeof(BiTNode));
}
if(!T){
printf("OVERFLOW!/