c语言错误writing,请教:调用malloc时出现Access violation writing location的错误怎么办??...
已结贴√
问题点数:15 回复次数:5
请教:调用malloc时出现Access violation writing location的错误怎么办??
#include"stdio.h"
#include"malloc.h"
#define ERROR 0
#define OK 0
#define STACKINCREMENT 5
typedef int status;
typedef struct List
{
char *base;
int length;
int listsize;
}List;
typedef struct BiTree
{
BiTree *lchild;
BiTree *rchild;
char data;
}BiTree, *BiTreeP;
typedef struct stack
{
BiTreeP *base;
BiTreeP *top;
int stacksize;
}stack;
status InitList(List *l)
{
if(!(l = (List*)malloc(sizeof(List)))) return ERROR;
l->base = NULL;
l->length = 0;
l->listsize = 0;
}
status scandata(List *l,int n)
{
if(!(l->base = (char*)malloc(n*sizeof(char)))) return ERROR;//程序卡在这一行,给出的错误对话框是:"
char *p = l->base; //Unhandled exception at 0x00f61497 in BiTree.exe: 0xC0000005:
while(p) //Access violation writing location 0x00000000."
{
scanf("%d",p);
p++;
}
}
status InitStack(stack *s,int n)
{
s->stacksize = n;
if(!(s->base = (BiTreeP*)malloc(sizeof(BiTreeP)))) return ERROR;
s->top = s->base;
}
int push(stack *s,BiTree *ch)
{
if(!(s->base + s->stacksize <= s->top))
{
BiTreeP *newbase;
if(!(newbase = (BiTreeP*)realloc(s,(s->stacksize + STACKINCREMENT)*sizeof(BiTreeP))))
return ERROR;
else
{
s->stacksize += STACKINCREMENT;
s->base = newbase;
s->top = s->base + s->stacksize;
}
}
*(s->top++) = ch;
return OK;
}
int StackEmpty(stack *s)
{
if(s->top = s->base) return 1;
else return 0;
}
status main()
{
BiTree *ps = NULL;
stack *s = NULL;
List *l = NULL;
char * pl = NULL;
int n;
InitList(l);
printf("How many data will be inputed ?\n");
scanf("%d",&n);
scandata(l,n);
InitStack(s,n);
if(!(ps = (BiTree*)malloc(sizeof(BiTree)))) return ERROR;
push(s,ps);
while(!StackEmpty(s))
{
while(*pl != '#')
{
if(!(ps->lchild = (BiTree*)malloc(sizeof(BiTree)))) return ERROR;
ps->data = *pl;
push(s,ps);
ps =ps->lchild;
pl++;
}
ps = ps->rchild;
pl++;
}
return OK;
}
搜索更多相关主题的帖子:
return
c语言错误writing,请教:调用malloc时出现Access violation writing location的错误怎么办??...相关推荐
- Unhandled exception 0xC0000005: Access violation writing location
vs2010 出现文件无法写入的问题,下列代码中每当运行<< 时会出错,错误提示如题: Unhandled exception 0xC0000005: Access violation w ...
- OSError: exception: access violation writing,
在使用python3.5_x64,ctype调用c++的.so文件时持续出现了OSError: exception: access violation writing 0x....... 的问题.定位 ...
- First-chance exception at 0x774CEB23 (ntdll.dll) in XXX.exe: 0xC0000005: Access violation writing
语音对讲程序中在关闭对讲时总是报错"First-chance exception at 0x774CEB23 (ntdll.dll) in XXX.exe: 0xC0000005: Acce ...
- Unhandled exception at 0x00291422 in x.exe: 0xC0000005: Access violation writing location 0x37ACCE08
源码如下: #include<stdio.h> #include<string.h> #include<stdlib.h> //malloc所在库#define M ...
- OSError: exception: access violation writing and reading
OSError: exception: access violation writing 0x0000000000000000 原因:pFormatCtx 么有分配内存 //pFormatCtx = ...
- 关于瞎报Access violation writing location异常的瞎解决方法
文章目录 @[toc] 问题描述 解决办法 问题描述 最近在用OpenCV解决一些CV问题.嗯,VS2017,各位看官不要笑,我也想用Linux,没办法,VS对于菜鸡来说是真的好用,虽然配环境确实蛋疼 ...
- osmnx OSError: exception: access violation writing 0x0000000000000001
使用osmnx的一些功能函数时会报错osmnx OSError: exception: access violation writing 0x0000000000000001 根本原因是osmnx的版 ...
- MySQL错误:SQLSTATE[42000]: Syntax error or access violation
MySQL错误:SQLSTATE[42000]: Syntax error or access violation: 问题描述: 查询数据是遇到这个问题(mysql5.7) 原因分析: 后面查资料才知 ...
- Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明
错误码 信息 2420 数字语法错误 2421 日期语法错误 2422 字符串语法错误 2423 '.'.'!'.或 '()'的使 ...
最新文章
- 2-flutter 之HelloWorld
- HDMI和VGA接口
- tomcat c3p0 mysql_C3P0数据库连接池与tomcat一起使用时报错
- java 基础安装和Tomcat8配置
- 为什么需要做归一化或者标准化
- 女生会 P 的可不仅仅是丰胸和瘦腿......
- JSF 2.2在30秒内创建一个自定义Hello World组件
- LeetCode 447. 回旋镖的数量(哈希map+组合数)
- 信息学奥赛一本通 1162:字符串逆序
- 实现跨域访问---同源策略 、常见跨域方法
- 使用C#操作Oracle Spatial的SDO_GEOMETRY对像(读取和写入)
- c语言求满足不等式的最小值,高手请进,请教一道简单的c语言题!
- getchar()不停止原因
- linux ls 输出格式,(转)linux 中使用ls指定输出时间格式
- atitit.科技公司的超级武器--超级框架,到底要不要自己的框架??
- 虚拟偶像大众化元年,如何挖掘蓝海市场|虚拟偶像公司2020年盘点
- 一周信创舆情观察(1.10~1.16)
- 大数据CAP原则(CAP定理)、BASE理论
- Unity3D ParticleSystem粒子系统
- 三星pay显示无法连接服务器,三星智付Samsung pay正式开启:服务器宕机 三星紧急发公告...