如果我用这样的引入指针构建一个函数:
int* c=new int[16];
并将其归还
return c;
如何在main()中确定c,(16)的大小。我不能使用sizeof因为c不是数组......
答案 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(指针的大小)。