c语言中关于“访问冲突”的问题

在调试数据结构实验时遇到“访问冲突”问题,常见原因包括数组越界、指针未正确初始化。在二叉树先序递归构造中,错误在于对已分配空间的指针重新分配,以及错误地传递了指针的值而非地址。修正后的算法应确保在分配节点空间后初始化指针,并通过返回新创建的子节点来正确构建二叉树。
摘要由CSDN通过智能技术生成

       最近的两次数据结构实验,在调试过程中都出现了如“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!/

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值