如果我用这样的引入指针构建一个函数:
int* c=new int[16];
并归还它
return c;
如何在main()中确定c,(16)的大小。我不能使用sizeof因为c不是数组...
由于c
是一个指向int的指针(这就是int* c
的意思),你从sizeof(c)
得到的正好是int指针的大小。这就是为什么sizeof(c)/sizeof(int*)
给你1。
如果将c
定义为数组,而不是指针:
int c[16];
你会得到它的大小。
您无法获得动态分配的数组中的元素数。它适用于这种情况:
int c[16];
int num_elements=sizeof(c)/sizeof(int);
在你的情况下sizeof(c)
可能是4(指针的大小)。