#include <stdio.h>
#include <stdlib.h>
#define scanf scanf_s
typedef struct Btnode {
int value;
char ltag, rtag;
struct Btnode *lchild, *rchild;
} btnode;
btnode *pre=(btnode *)malloc(sizeof(btnode));
最后一句会报错,请教一下。
任何函数都不能在全局情况下被调用,所以你不能直接为全局变量通过malloc分配空间
你可以只声明这个全局变量,然后再main函数第一行用malloc给它赋值
btnode *pre=(btnode *)malloc(sizeof(btnode)*60);
你这样写试试
得把主函数补上,供参考:
#include <stdio.h>
#include <stdlib.h>
#define scanf scanf_s
typedef struct Btnode {
int value;
char ltag, rtag;
struct Btnode* lchild, * rchild;
} btnode;
btnode* pre = (btnode*)malloc(sizeof(btnode));
int main()
{
return 0;
}
搜了一下,C语言的main函数是入口函数,任何函数必须从main开始调用,
而且全局变量只能定义,定义并使用常量初始化,对全局来说,只能接受常量