c - 检查传递给函数的指针的有效性,也包括非 NULL 情况
问题描述
我想知道除了 common 之外是否还有一种方法可以检查指针的有效性assert(NULL != ptr)
。我尝试了以下故意引发“访问错误”,因此我会及早收到警报,而不是最近在某些嵌套代码中访问指针时:
#if !defined _NDEBUG || defined _DEBUG
#define _check_ptr(ptr, type) do{type x; assert(NULL != ptr); x = *ptr;}while(0)
#else
#define _check_ptr(ptr, type)
#endif
关于这个话题有什么建议吗?
所需用例:
void func(int *ptr){
_check_ptr(ptr, int);
if (NULL != ptr){ // Still check in release
...
}
}
作为先决条件,完全可以接受 IDE 在访问错误时将我扔到调试器中。在我的情况下,我不会从命令行或 IDE 之外的某个地方运行调试构建。
解决方案
推荐阅读
- perl - CPAN 安装模块 Math::Pari 失败(获取 GP/PARI)
- windows - 获取由 DrawText[Ex] 解释的 GDI HFONT 行高
- django - 尝试使用模型上传音频文件,但出现“未找到”错误(Django)
- android - 在后台运行 BLE ScanCallback
- python - IP地址字符串提取在Python3中不起作用
- c++ - 为什么不总是使用 ::operator new 而不是 new (甚至不构造)?
- swagger - 招摇加豹猫
- python - 如何在 pandas 的数据透视表函数中聚合索引值?
- discord.py - 如何检查此人是否已经在不和谐中使用过命令?
- typescript - 打字稿使用泛型使用类型键参数从接口获取类型值?