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

时间:2016-09-05 07:59:54

标签: c pointers

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

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

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

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

我不需要一个完美的答案,只是能够捕捉到大多数错误。

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

0 个答案:

没有答案