C++ 中执行程序,内存不能为written

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:36:20
源程序如下,这是我自己写的停车场管理程序,可是编译通过了,运行就是内存不能为written。以前也碰到过这样的情况,还没有明白为什么。望大侠帮助啊!

#include<iostream.h>
#include<stdlib.h>
float price;

typedef struct Car{
char num[10];
float time;
}Car;//一辆车

typedef struct Stack{
Car **top;
Car **base;
int stacksize;
}Stack;//停车场

typedef struct QNode{
Car *data;
struct QNode *next;
}QNode,*QueuePtr;//便道,存放的是指向车的指针

typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;

void InitStack(Stack &s,int n);
void InitQueue(LinkQueue &Q);
void Move(Stack &s1,Stack &s2);
void Arrival(Stack &s,LinkQueue &Q,Car *car2);
void Departure(Stack &s1,Stack &s2,LinkQueue &Q,Car *car2);

void main()
{
extern float price;
int n;
Stack carpark,temp;
LinkQueue wait;
cout<<"请输入停车场的大小:"<<endl;
cin>>n;
cout<<"请输入停车场

car1没有初始化,修改为Car *car1=new Car();
关于第二点,将Arrival改为
void Arrival(Stack &s,LinkQueue &Q,Car *car2)
{
if(s.top-s.base>=s.stacksize)//停车场已满,车进入便道等候
{
QueuePtr p=(QueuePtr)malloc(sizeof(QNode));
p->data=car2;p->next=NULL;
Q.rear=p;
if(Q.front->next==NULL)
Q.front->next=p;
}
else
*s.top++=car2;
}
因为你的Q.front->next一直是空的,但是在加入第一辆车时应该要对它赋值。

可以运行啊,我截图已经传上去了啊,我用的是dev c++,不知道是不是你的编译器的原因啊。dev c++中main函数必须返回值,不能为空。

c程序设计中,程序无错,但不能执行 电脑执行程序的时候,经常出现“XXX内存不能为read”是怎么回事啊,能解决吗??? 循环执行c程序 java程序不能执行 c++不能执行程序 为什么程序不能执行 在Turbo c中 程序编译完成后执行不了? vc++程序在c的编译器中如何执行? 怎样将好的c语言程序在tuboc中执行后,在windows中执行 该内存不能为read程序是什么意思