|
查看: 1161|回复: 8
|
c++ pointer array问题
[复制链接]
|
|
|
我declare一个 pointer 指去一个 array
int *pointer = NULL;
pointer = new int[3]
如果用 sizeof(pointer),他return pointer 的 byte 而不是 array有几大。
请问有什么方法知道array的element? |
|
|
|
|
|
|
|
|
|
|
发表于 31-8-2008 03:11 PM
|
显示全部楼层
size of 没办法获取指针指向的空间大小,因为他指向的是地址的空间大小。
除非你自己记起来,C++没有纪录指针数组的表达式。据我所知
char *x , 可以用strlen(x)来知道数组大小。
int 的,就没办法了。只可以自己记着。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 31-8-2008 03:34 PM
|
显示全部楼层
谢谢
其实是因为我功课要做function。testdriver是lecturer写,所以我们不知道他会用多少element。现在不懂怎样detect array 的element。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 31-8-2008 04:36 PM
|
显示全部楼层
int *pointer = new int[size];
如果要加减array的element,你可以++size , 或者 --size,
这样一来,你就可以一直知道他的大小了。 |
|
|
|
|
|
|
|
|
|
|
发表于 1-9-2008 02:04 PM
|
显示全部楼层
可以考虑用 vector 或 deque  |
|
|
|
|
|
|
|
|
|
|
发表于 8-9-2008 10:30 AM
|
显示全部楼层
回复 5# NewEraPenang 的帖子
|
可以用 number_of_element = sizeof(pointer)/sizeof(int); |
|
|
|
|
|
|
|
|
|
|
发表于 17-9-2008 12:12 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 17-9-2008 12:24 PM
|
显示全部楼层
回复 7# 大_雄 的帖子
|
c++ 应该无须用 malloc, 本身就可以用new keyword 了, 何况还有vector, deque, list |
|
|
|
|
|
|
|
|
|
|
发表于 12-10-2008 09:16 PM
|
显示全部楼层
|
使用 array pointer 后, 最好 delete 掉, 以防 memory leak. |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|