看下这段代码正确吗

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:39:38
#include<iostream.h>
#include<malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{ ElemType elem[MaxSize];
int *top;
int *base;
int stacksize;
}SqStack;
InitStack(SqStack &s)
{s.base=(int *)malloc(100);
if(!s.base) return 0;
s.top=s.base;
s.stacksize=MaxSize;
return 1;
}

叫我正确写一段数据结构代码,比登天还难,高手教我怎么上机,上机的代码5花8门,到底该怎么写,迷茫中>>>>

不是很明白你的意思,
我猜你应该建立一个SqStack的结构体,并且分配100个这种结构体的堆栈吧.

如果是这样,程序应该是
#include<iostream.h>
#include<malloc.h>

#define MaxSize 100

typedef char ElemType;

typedef struct
{
ElemType elem[MaxSize];
int *top;
int *base;
int stacksize;
}SqStack;

int InitStack(SqStack s)
{
s.base=(int *)malloc(100*(sizeof(SqStack))); //这里是分配100个SqStack的空间,并且把这段Memory的指针赋值给s.base ; sizeof(SqStack)是一个SqStack结构体所占存储空间的大小
if(!s.base) //如果没有分配到空间,返回0,表示出错
return 0;
s.top=s.base;
s.stacksize=MaxSize;
return 1;
}

其实你代码写的还行啊,没什么太多问题

对了,程序跑完后,记得释放分配的存储空间free(s.base);

代码是正确的,但elem是做什么的,你打算用这个数据结构做什么呢?看你需要什么吧.

你把程序功能告诉我呀,不然怎么帮你?