C语言 struct 小问题
来源:百度知道 编辑:UC知道 时间:2024/06/19 09:57:49
#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->