对于C dode的单元测试,我想确定作为void *
传递的值确实是一个有效的指针。
我不认为我可以证明肯定是一个有效的指针,但我怎么能说可能是?或者肯定是不?
我正在64位英特尔处理器上进行开发和单元测试,目标是ARM 9.我不反对汇编器插件。
0x08
看起来不是指针,而是0x1000000
以上的值。我不需要一个完美的答案,只是能够捕捉到大多数错误。
[更新]我正在考虑查看链接地图,虽然这看起来有点矫枉过正。在转换为删除编译器时,会出现问题。某些系统调用需要char *
或void *
,并且这些系统调用会屏蔽某些编码错误。