最近在看Kernighan的《程序设计实践》一书,我用的是裘宗燕的翻译本。感觉有些问题:
38页中的freeall函数(以下为书中原程序)中并不能释放listp,
这个应该手动的在调用函数中释放,或者用以下形式改写程序:
同理在下面的delitem函数中,如果strcmp(name, p -> name) == 0 成立,且prev == NULL 也成立,即要删除的是线性表的第一个元素,书中所用的方法也是不可行的,也应该将参数改为*listp。
应改为:
还请大家多指教。
最近在看Kernighan的《程序设计实践》一书,我用的是裘宗燕的翻译本。感觉有些问题:
38页中的freeall函数(以下为书中原程序)中并不能释放listp,
这个应该手动的在调用函数中释放,或者用以下形式改写程序:
同理在下面的delitem函数中,如果strcmp(name, p -> name) == 0 成立,且prev == NULL 也成立,即要删除的是线性表的第一个元素,书中所用的方法也是不可行的,也应该将参数改为*listp。
应改为:
还请大家多指教。