对于一个未知大小的数组int Array[],如何获得它的边界大小?

ddr527 2004-06-09 05:39:47
对于一个未知大小的数组int Array[],如何获得它的边界大小?
...全文
329 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
joefoxreal 2004-06-10
  • 打赏
  • 举报
回复
sizeof(Array)/sizeof(Array[0])
wfowler 2004-06-10
  • 打赏
  • 举报
回复
sizeof(array)/sizeof(int)

jp1984 2004-06-09
  • 打赏
  • 举报
回复
sizeof(array)/sizeof(T) //T is anytype..
qwddn 2004-06-09
  • 打赏
  • 举报
回复
sizeof(array)/sizeof(int)
Andy84920 2004-06-09
  • 打赏
  • 举报
回复
关键还是去搞清楚数组与指针在C/C++语言中的关系.
它们不是等价的.在很多场合你需要去理解他们的异同.
不然你会搞不明白,想不通为什么,为什么,为什么....
null2002 2004-06-09
  • 打赏
  • 举报
回复
我认为有这几种变通的方法:
1用vector
2用第一个单元记录它的大小
3用一个单独的变量记录它的大小
4自己做一个类,类中有一个成员为大小值
5不用指针,完全用数组来代替
6模仿字符串,最后一个单元写入特殊值
7别写程序,让别人烦这个问题去

还有其它方法吗?求教!
antijpn 2004-06-09
  • 打赏
  • 举报
回复
C++里面数组就不可能不知道长度,因为数组大小在编译期间确定,直接用sizeof就能得到大小

C99里面规定了一个变长数组,那个东西同样可以使用sizeof,但是那个就是运行时确定了

C++里面使用new[]动态分配的东西只有delete[]才知道它的大小。一般纪录这种类型的数据的大小有两种方法,一个是把大小记录在首个元素的前面,还有一种是专门有一块地方纪录大小。采用这两种方法中的哪一种具体要看具体实现。malloc函数一般也是采用这样的两种方法。
Jinhao 2004-06-09
  • 打赏
  • 举报
回复
数组大小未知 不会吧,因为数组在定义时 会要求大小
如果 int Array[] 这样写,那么就只能说它是一个函数的参数,而且只是一个指针
liushuaiboy 2004-06-09
  • 打赏
  • 举报
回复
怎么会遇到这种情况呢?楼主能详细说说吗??
sixsavage 2004-06-09
  • 打赏
  • 举报
回复
vector也就是在每一个对象中保存了数组的大小而已,其实你也可以自己写一个类加一个数据成员记录大小就可以了.
owl2008 2004-06-09
  • 打赏
  • 举报
回复
有,用vector
ddr527 2004-06-09
  • 打赏
  • 举报
回复
那就是说C++中只有一个数组指针是不能获得它的大小了?
有没有变通的方法?
jyc_nj 2004-06-09
  • 打赏
  • 举报
回复
piaozi2003() 的方法是编译期求数组大小的方法. 能求说明这是定大小的数组,而非"未知大小的数组"
jyc_nj 2004-06-09
  • 打赏
  • 举报
回复
只一个数组指针,是无法知道边界大小的!

数组指针和数组大小,本就是一起走的, 谁分配就找谁要大小.
piaozi2003 2004-06-09
  • 打赏
  • 举报
回复
sizeof(Array)/sizeof(Array[0])

64,664

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧