计算不知道大小的数组大小的问题???!!!o(>_<)o!!!

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

void   main()   {  
  int   a[100];  
  f(a);  
  }  
   
  void   f(int   a[])   {  
  //如何得到a的大小?  
  }  
   
  a在f里面已经是int*,sizeof出来的是4(指针的大小),而用void   f(int   (&a)[100])又必须知道大小100,上面加上template<int   size>想通过函数模板但是编译不通过...本人用的是vc   6.0

· 网友精彩回答:

发表者:sh5dragon5

在new传回的每个内存块配置有一个额外的word,元素的个数被包藏在那个word中,这种包藏成为cookie。delete操作就是寻找到这个cookie来确定元素数目的。至于这个是如何实现的各个编译器并不一致,例如jonathan和sun的编译器是采用维护一个联合数组来放置指针和大小。并没有资料说明各个编译器是如何处理这个cookie的位置的,也没有说如何来利用这个cookie,因此,即使能利用它找到元素数目,这种方法也是不具有移植性的。还是建议使用以上几位兄台的方法,将大小作为参数传递为好。

发表者:azuresn

呵呵,很高兴交个c++水磨路上的朋友。我以前大四时是想搞java的,后来考虑到现在职业的需要,又重新跑回来抱着c++水磨功夫的。学过了java后,真的发现c++   ——   好累~  
  但是c++的折中性比较好,这是我最满意的。哈哈~  
  看你好象是在上海,哈,今年三月份之前我还经常每年在上海出半年差的。现在基本不去了。  
   
  我的:  
  qq:1124019;  
  email:   azuresn@mail.csdn.net  
  web:   http://www.pickstars.com

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved