佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1161|回复: 8

c++ pointer array问题

[复制链接]
发表于 31-8-2008 01:58 PM | 显示全部楼层 |阅读模式
我declare一个 pointer 指去一个 array

int *pointer = NULL;
pointer = new int[3]

如果用 sizeof(pointer),他return pointer 的 byte 而不是 array有几大。

请问有什么方法知道array的element?
回复

使用道具 举报


ADVERTISEMENT

发表于 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);
回复

使用道具 举报

Follow Us
发表于 17-9-2008 12:12 PM | 显示全部楼层
用malloc也是不错的选择。
回复

使用道具 举报

发表于 17-9-2008 12:24 PM | 显示全部楼层

回复 7# 大_雄 的帖子

c++ 应该无须用 malloc, 本身就可以用new keyword 了, 何况还有vector, deque, list
回复

使用道具 举报


ADVERTISEMENT

发表于 12-10-2008 09:16 PM | 显示全部楼层
使用 array pointer 后, 最好 delete 掉, 以防 memory leak.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-12-2025 04:38 AM , Processed in 0.108965 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表