原始程序在文件中定义这样一个变量
CTree* pTree = NULL; 全局变量
pTree->InitCTree();
……
后来在别的文件中要用到pTree,所以在声明前面加了个extern关键字
程序运行到初始化pTree时出错了。
原来,extern的作用是告诉编译器pTree这个变量已经在别的文件中说明,但是不分配内存。所以第一次使用时一定要给它申请一定的空间。
CTree* pTree = newCTree;
这一句 的作用就是申请一段内存空间了。