[英]How to print size_t and ptrdiff_t using printf in ANSI C (C89)
[英]Adding a pointer to size_t in C89
首先,我知道这个帖子 :
现在假设我有这个数组:
size_t count = some_value();
struct info *pinfos = malloc(count * sizeof(struct info));
我想用变量“导航”它
struct info *p;
我可以使用此代码检查限制吗?
p < (char*)pinfos + count*sizeof(struct info) - 1
这在C89是合法的吗?
有没有更“合适”的方式呢?
你可以做到这一点,但你过度复杂,只是这样做
p < pinfos + count - 1
并且它将起作用,因为指针算法是根据指针类型的大小执行的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.