白牡丹秀色可餐 发表于 2020-4-24 23:48:29

栈输入

下面是代码 创建了一个栈然后输入,最下边是显示的错误,但是不知道应该怎么改

#include<stdio.h>
#include<stdlib.h>


void Input(Num &S);


typedef struct In
{
        int *top;
        int *base;
        int a;
}Num;

void main()
{
        Num *S=NULL;
        int amount,i,num;
        S =(Num*)malloc(sizeof(Num));
        Input(*S);
        printf("the amount of num you want to add :");
        scanf("%d",&amount);
        for(i=1;i<=amount;i++)
        {
                printf("\nthe num you want to add :");
                scanf("%d",num);
                *(S->top) = num;
                S->top ++;
        }
}

void Input(Num &S)
{
        S.base =(int*)malloc(10*sizeof(int));
        if(!S.base)
        {
                        printf("get space ERROR\n");exit(0);
        }
        S.top = S.base;
}


语法错误 : 缺少“)”(在“&”的前面)
1>d:\c语言\1.1\1.1\1.c(5): error C2143: 语法错误 : 缺少“{”(在“&”的前面)
1>d:\c语言\1.1\1.1\1.c(5): error C2059: 语法错误:“&”
1>d:\c语言\1.1\1.1\1.c(5): error C2059: 语法错误:“)”
1>d:\c语言\1.1\1.1\1.c(20): warning C4013: “Input”未定义;假设外部返回 int
1>d:\c语言\1.1\1.1\1.c(32): error C2143: 语法错误 : 缺少“)”(在“&”的前面)
1>d:\c语言\1.1\1.1\1.c(32): error C2143: 语法错误 : 缺少“{”(在“&”的前面)
1>d:\c语言\1.1\1.1\1.c(32): error C2059: 语法错误:“&”
1>d:\c语言\1.1\1.1\1.c(32): error C2059: 语法错误:“)”

chxchxkkk 发表于 2020-4-25 00:10:42

void Input(Num &S) 是c++的写法,c没有这样的写法

白牡丹秀色可餐 发表于 2020-4-25 00:14:51

chxchxkkk 发表于 2020-4-25 00:10
void Input(Num &S) 是c++的写法,c没有这样的写法

噢噢好哒,谢谢!其他的我找到原因啦,不能把函数定义写在Num前
页: [1]
查看完整版本: 栈输入