【发布时间】:2009-01-22 18:40:11
【问题描述】:
有没有办法在 ANSI C89/ISO C90 中可移植地确定 void-pointer 值的上限和下限?(我目前没有标准的副本(我有一个在家里)。当然,如果 void-pointer 值保证是无符号的,这个任务是微不足道的(通过 sizeof(void *));但是,我不记得这是否得到保证。我能想到一些非常低效的算法(递增直到溢出等),但我想知道是否有人有相对便宜(就时间复杂性而言)和便携的方法来计算这些界限。)
--编辑--
另外:是否有可移植的方法来确定指针值的有效性?
原因:这是在与一位同事的讨论中提出的,这让我很困惑。我不知道他在做什么,但我只是想知道,因为我有兴趣! :-)
【问题讨论】:
-
为什么你需要知道这个?如果您尝试确定给定的指针是否指向有效的内存位置,那么几乎可以肯定有更好的方法来执行您想要执行的操作。
标签: c void-pointers c89