关于非字符串数组上限?

墨梅无痕 2001-05-25 09:21:00
请问C语言里有没有非字符串的求数组上限的函数或宏,或者也可以提示C语言里非字符串数组的内存实现机制。

举例:
int a[6];
char ch[6];

我们可以用strlen()函数求的ch的长度为6,如何求a的长度呢?
(Object Pascal里有Low(), High()函数求数组的上下限)
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
windindance 2001-05-26
  • 打赏
  • 举报
回复
同意myan(老狼麦克)。vector(list,etc)是最好的解决方案。
glhorse 2001-05-25
  • 打赏
  • 举报
回复
但是如果是指针怎么办哪????????
glhorse 2001-05-25
  • 打赏
  • 举报
回复
象 int a[6]之类的数组。可以用
sizeof(a) / sizeof(a[0]) 的方式得到。
windindance 2001-05-25
  • 打赏
  • 举报
回复
不明白。holyfire(发了财的众神之焰) 的方法是标准方法呀?
墨梅无痕 2001-05-25
  • 打赏
  • 举报
回复
如何在函数而非主程序体中确定或取得buf?如果用参数确定,那就没有意义了.
holyfire 2001-05-25
  • 打赏
  • 举报
回复
通用的办法

#define Size( buf ) (sizeof(buf)/sizeof(*buf))

用总的大小/单位大小=数组的长度
xycleo 2001-05-25
  • 打赏
  • 举报
回复
c++builder中有DynamicArray动态数组!!
它具有Low()和High()两个属性
xycleo 2001-05-25
  • 打赏
  • 举报
回复
奇怪我刚才法的没了!!!
myan 2001-05-25
  • 打赏
  • 举报
回复
如果数组是在编译时分配的,则版主的方案就是标准答案。但是要注意,这个方法只有在
buf标示符作用域中方可用。如果数组是在运行时分配的,那么并没有什么特别的办法来
了解数组的维度。但是在这种情况下,我认为应该使用vector,而不是数组。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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