求助:为什么我用malloc该函数然后后面一直显示缺少)
# include <malloc.h># include <stdio.h>
# include <stdlib.h>
# include <math.h>
# define STACK_INIT_SIZE 100;
# define STACKINCREMENT 10;
typedef char ElemType;
typedef struct{
ElemType * base;
ElemType * top;
int stacksize;
}sqstack;
void intstack(sqstack * s)
{
s->base=(ElemType *)malloc(STACK_INIT_SIZE * sizeof (ElemType));
}
错误信息:error C2143: syntax error : missing ')' before ';' #define 是预处理命令,后面不用加分号
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef char ElemType;
typedef struct
{
ElemType *base;
ElemType *top;
int stacksize;
} sqstack;
void intstack(sqstack *s)
{
s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType));
} #define 后面一般是不需要添加分号的。
预处理命令是在预编译的时候直接替换的
你在#define中添加了分号,在替换掉 时候就变成了下面的样子
s->base=(ElemType *)malloc(100; * sizeof (ElemType));
在malloc中100后面有了分号,系统就认为语句结束了,然后发现缺少半个括号,就报错了
页:
[1]