使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。
在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:
#include <stdio.h>
#define NDEBUG
#include <assert.h>
编程新手常犯这种错误,他们没有意识到内存分配会不成功。常用解决办法是,
在使用内存之前检查指针是否为 NULL。如果指针 p 是函数的参数,那么在函数的入口
处用assert(p!=NULL)进行检查。 如果是用malloc或new来申请内存, 应该用if(p==NULL)
或 if(p!=NULL)进行防错处理。