如何测试值是否(或不是)有效指针?

Maw*_*awg 9 c pointers

对于C dode的单元测试,我想确定作为a传递的值void *确实是一个有效的指针.

我不认为我可以证明它肯定是一个有效的指针,但我怎么能说它可能是?或者绝对不是

我正在64位英特尔处理器上进行开发和单元测试,目标是ARM 9.我不反对汇编器插件.

  • 是否有有效指针的最小值?0x08看起来不是指针,上面的值0x1000000是多少.
  • 它必须能被某些东西整除(比如8)吗?
  • 我可以100%确定地说奇数不是有效指针吗?

我不需要一个完美的答案,只需要捕捉大多数错误.


[更新]我正在考虑查看链接地图,虽然这看起来有点矫枉过正.在转换为删除编译器时,会出现问题.一些系统调用需要一个char *void *,并且csting那些掩盖了一些编码错误.