返回元素数量

时间:2014-12-21 22:47:40

标签: pointers size

如果我用这样的引入指针构建一个函数:

int* c=new int[16];

并将其归还

return c;

如何在main()中确定c,(16)的大小。我不能使用sizeof因为c不是数组......

2 个答案:

答案 0 :(得分:4)

由于c是一个指向int的指针(这是int* c的意思),你从sizeof(c)得到的正是指向int的指针的大小。这就是sizeof(c)/sizeof(int*)给你1的原因。

如果将c定义为数组,而不是指针:

int c[16];

你会得到它的大小。

答案 1 :(得分:1)

您无法获得动态分配的数组中的元素数量。在这种情况下它会起作用:

int c[16];
int num_elements=sizeof(c)/sizeof(int);

在你的情况下sizeof(c)可能是4(指针的大小)。