帮忙见见哪里出错了
帮忙看看哪里出错了?int InitStack(SqStack &S){S.base(int *)malloc(STACK_INIT_SIZE*sizeof(int))if (
帮忙看看哪里出错了?
int InitStack(SqStack &S){
S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if (!S.base) return 1;
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return 0;
}gcc编译信息:
hope@hope-Think:~/study/homework$ gcc -o link link.cpp
link.cpp: 在函数‘int InitStack(SqStack&)’中:
link.cpp:49:23: 错误: expected ‘)’ before ‘;’ token
link.cpp:49:49: 错误: 一元 ‘*’参数类型无效(有‘long unsigned int’)
link.cpp:49:50: 错误: expected ‘;’ before ‘)’ token
link.cpp: 在函数‘int Push(SqStack&, int)’中:
link.cpp:58:45: 错误: expected ‘)’ before ‘;’ token
link.cpp:58:45: 错误: expected ‘)’ before ‘;’ token
link.cpp:58:59: 错误: expected primary-expression before ‘)’ token
link.cpp:58:59: 错误: expected ‘;’ before ‘)’ token
代码就是包含49行的那一部分。这部分之前的代码没有错误(之前经过编译了)。
错误出在哪里啊?
[解决办法]额,你还是把你的代码贴出来看看吧。。
[解决办法]同意13楼
return 1 不能这样
栈空间分配错误 不能返回
改为printf("提示语");
[解决办法]如果我没搞错的话,应该是你那个STACK_INIT_SIZE参数定义的不对,你看void *malloc(unsigned int num_bytes); 原型,参数类型是unsigned int,而你的STACK_INIT_SIZE定义成了long unsigned int 了吧,这两种类型是无法实现转换的。