在 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
它会起作用,因为指针运算是根据指针类型的大小执行的。
首先,我知道这个
现在假设我有这个数组:
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
它会起作用,因为指针运算是根据指针类型的大小执行的。