C语言 struct 小问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 09:57:49
使用VC++ 6。0编译下列代码,有错误,不知道出现在哪里,郁闷呀。哪位高手帮帮忙。
#include<stdio.h>
#include<malloc.h>
#define OK 1
#define elemType char
typedef struct Node{
elemType date;
struct Node * next;
}node,*LNode;

typedef struct Stack{
struct Node * base;
struct Node * top;
}stack;

int initStack(stack *s){
s->base=NULL;s->top=NULL;
return OK;
}

main(){
struct Stack * s=(stack *)malloc(sizeof(stack));
initStack(s);

struct Node *a;
a=(struct Node *)malloc(sizeof(struct Node));
a->date='c';
a->next=NULL;
printf("%c\n",a->date);

printf("%d\n%d\n%d\n%d\n",sizeof(node),sizeof(stack),sizeof(LNode),sizeof(s->base));
printf("%s\n",s->base);
free(a);
free(s);
}
错误:
F:\stack.c(24) : error C2143: syntax error : m

我用了3个编译器编译(vc6.0,boland5.5,gnu)它,都没有问题。你再编译一次,也许就好了。

我用VC6没有出现问题呀!请说明你的操作步骤。

你的main函数前面写上void

vc6经常会出现一些奇怪的错误,如果你感觉没有错误,你把它关掉重新打开就可能好了,我以前经常遇到这种情况。我现在都不用那个编译器了,我用的是Dev cpp编译器,很好用的。可以试试

#include<stdio.h>
#include<malloc.h>
#define OK 1
#define elemType char
typedef struct Node{
elemType date;
struct Node * next;
}node,*LNode;

typedef struct Stack{
struct Node * base;
struct Node * top;
}stack;

int initStack(stack *s){
s->base=NULL;s->top=NULL;
return OK;
}

main(){
struct Stack * s=(stack *)malloc(sizeof(stack));
struct Node *a;
initStack(s);

a=(struct Node *)malloc(sizeof(struct Node));
a->date='c';
a->next=NULL;
printf("%c\n",a->date);

printf("%d\n%d\n%d\n%d\n",sizeof(node),sizeof(stack),sizeof(LNode),sizeof(s->