返回元素数量

问题描述 投票:-1回答:2

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

int* c=new int[16];

并归还它

return c;

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

pointers size
2个回答
4
投票

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

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

int c[16];

你会得到它的大小。


1
投票

您无法获得动态分配的数组中的元素数。它适用于这种情况:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.