今天下午在专门处理某個程序中的内存泄漏问题。用valgrind查到一处泄漏的地方之后,按照以前用delete的习惯直接写上咯“free (*cnet)->sockfds[SockCtr]”,嘿嘿。结果一编译,报告“错误:void值未如预期地被忽略”,本座一呆,这是怎么回事啊?出去一查古鸽,看到咯这位哥哥的博客:http://blog.csdn.net/huichengongzi/article/details/5449470,其中这句:“void free( void *memblock ); —— 没有返回值,不好比较”,这才猛回头,想起来咯,原来free是C语言里的函数,不像delete是个操作符,它的参数必须是放在括号里的。前面习惯性写的那句实际上变成咯:“free() -> something”这样一个表达式,由于free()返回的是一个void,所以GCC就对这个表达式报告咯错误咯。把后面那一大坨“(*cnet)->sockfds[SockCtr]”加个括号就行咯。用惯咯C++咯。
今天下午在专门处理某個程序中的内存泄漏问题。用valgrind查到一处泄漏的地方之后,按照以前用delete的习惯直接写上咯“free (*cnet)->sockfds[SockCtr]”,嘿嘿。结果一编译,报告“错误:void值未如预期地被忽略”,本座一呆,这是怎么回事啊?出去一查古鸽,看到咯这位哥哥的博客:http://blog.csdn.net/huichengongzi/article/details/5449470,其中这句:“void free( void *memblock ); —— 没有返回值,不好比较”,这才猛回头,想起来咯,原来free是C语言里的函数,不像delete是个操作符,它的参数必须是放在括号里的。前面习惯性写的那句实际上变成咯:“free() -> something”这样一个表达式,由于free()返回的是一个void,所以GCC就对这个表达式报告咯错误咯。把后面那一大坨“(*cnet)->sockfds[SockCtr]”加个括号就行咯。用惯咯C++咯。
HxLauncher: Launch Android applications by voice commands