【发布时间】:2015-08-05 10:18:53
【问题描述】:
我一直想知道如何获取数组的元素数。在这个网站的某个地方,我找到了一个答案,告诉我声明以下宏:
#define NELEMS(x) (sizeof(x) / sizeof(x[0]))
它适用于定义为的数组:
type arr[];
但不适用于以下情况:
type *arr = (type) malloc(32*sizeof(type));
在这种情况下它返回 1(它应该返回 32)。 我会很感激一些提示
【问题讨论】:
-
你不能那样做。告诉说
32的人将该值存储在您需要长度时可以访问的地方。 -
我是这么认为的。谢谢!
-
@Jytug ,然后删除演员表。您不应该转换
malloc和家人的结果。 -
@Jytug,阅读Do I cast the result of
malloc?