发现主要存在以下几个错误:
1、主要是在写入和读出时,不一致,造成了一开始莫名其妙的bug。而根本原因就是,在写入时,是按整数写入的,get_table读出时,默认都是字符串。而这时,自己还按整数来取返回的结果,这样读出与写入的值肯定不一样了。如此,对于被调函数的理解欠缺,是造成bug的主要原因。如此,只有知己知彼,才行。
同时,也知道了,准备语句,在SQLite中,为什么一直存在。准备语句,可以改变输出的类型,更灵活的供调用者使用。而封装查询,只能输出字符串。对于大的表,get_table一次返回需要占用大量的内存(因为它返回全部记录),这个时候,用准备查询可以大量节省内存(因为它一次只返回一条记录)。
对于灵活使用SQLite,还是准备语句,更合适。
2、对于数组指针的运用,没有达到特别熟练。由于以前不怎么使用数组指针,在使用时,误将其当做一级指针来用,造成了应该打印内容的,打印了它的地址。经过这次,对于它的使用及理解加深了一层。
3、笔误。有些地方,不注意的笔误造成了一些不易查找的问题。例如:在for()循环后,直接多了“;”分号,造成了其后的循环语句块只执行了一次。其二,还有在使用格式化‘%s’的时候,漏输入了'%'。
4、对于错误处理,有些地方做的不完备,引发了内存错误。所以对于错误处理,一定要将可能出现的,尽量加以处理,避免它们引起其他隐藏bug。