16,548
社区成员




list initialize_list()
{
list L;
L.length = 0;
return L;
}
首先是局部变量是不能return的,除非是你new出来的,这关系到变量作用域的问题,一定要理解并掌握啊!
其次是结构体初始化的问题:就仅你的这代码来说,你只初始化了list.length,list.elem呢?所有数据必须要进行合理的初始化,否则用的时候就都是坑。有两种方法,一是直接list L={0};另一种就是memset了
如果你非要写个函数的话,正确的初始化应该是(其一)
initialize_list(list &L) //你传指针也行,但这种情况下一般传引用要好一些
{
//
}
2、list create_list(list L)
同样是这个问题,传参要传引用或者指针,哪有直接返回结构这种写法啊,其实根本就没有必要返回,要是返回也得是list& create_list(list &L)