在 C89 中添加指向 size_t 的指针

Adding a pointer to size_t in C89

首先,我知道这个

现在假设我有这个数组:

size_t    count = some_value();
struct info    *pinfos = malloc(count * sizeof(struct info));

我想 "navigate" 使用变量

struct info     *p;

我可以使用此代码检查限额吗?

p   <   (char*)pinfos  +  count*sizeof(struct info)  -  1

这在 C89 中合法吗?

还有更多"appropriate"方法吗?

你确实可以做到这一点,但你把它弄得太复杂了,那就去做吧

p < pinfos + count - 1

它会起作用,因为指针运算是根据指针类型的大小执行的。