奇怪的问题,还是不行

simclock 2003-04-26 06:09:41
这是栈类:
#include <stdlib.h>
#include <malloc.h>
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;


class Stack
{
public:
Stack(void);
~Stack(void);
int ClearStack(void);
int StackEmpty(void);
int StackLength(void);
int GetTop(void);
int Push(int);
int Pop(int &);

private:
int *base;
int *top;
int stacksize;
};

Stack::Stack(void)
{
base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if (base==NULL) throw "Memory allocation failed";
top=base;
stacksize=STACK_INIT_SIZE;
}


Stack::~Stack(void)
{
free(base);
}

Stack::GetTop(void)
{
return *(top-1);
}

Stack::Push(int e)
{
if (top-base>=stacksize) {
base=(int *)realloc(base,((STACK_INIT_SIZE+STACKINCREMENT)*sizeof(int)));
if (base==NULL) throw "Memory allocation failed";
top=base+stacksize;
stacksize+=STACKINCREMENT;
}
*top++=e;
return 1;
}


Stack::Pop(int &e)
{
if (top==base) throw "Empty stack";
e=*--top;
return 1;
}

Stack::ClearStack(void)
{
top=base;
return 1;
}

Stack::StackEmpty(void)
{
if (base==top) return 1;
return 0;
}

Stack::StackLength(void)
{
return top-base;
}

在程序中调用,出错
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(27): error C2143: syntax error : missing ')' before ';'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(27): error C2100: illegal indirection
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(27): error C2059: syntax error : ')'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2143: syntax error : missing ')' before ';'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2143: syntax error : missing ')' before ';'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2143: syntax error : missing ')' before ';'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2059: syntax error : ')'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2100: illegal indirection
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2059: syntax error : ')'
e:\Backups\My Documents\Visual Studio Projects\stackdemo\stack.h(47): error C2059: syntax error : ')'
错误全是出在那两行内存分配上,请大哥帮我看看:) 我用的vs7+2kserver 写的基于对话框的mfc程序
...全文
30 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yonk 2003-04-26
  • 打赏
  • 举报
回复
看不出有什么错的啊。关注下。
醉马不肖 2003-04-26
  • 打赏
  • 举报
回复
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

不应该有;

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧