生命游戏提供的原CreateList函数好像有问题!
void CreateList(List *list)
{
list = new List;
list->count = 0;
list->entry = NULL;
}
应该写成:
void CreateList(List *&list)
{
list = new List;
list->count = 0;
list->entry = NULL;
}
对于原来的函数,在里面申请了List,修改了list值,使其指向新生成的List对象/内存空间;但对于外部而言,实参的值并没有被改变。欲获得申请到的内存空间,应该使用指针的引用。
奇怪的是,大赛提供的代码也能正常运行,不知为何?