这样不行
int CDataMatrix::GetCol(float **tmp_data)    //取得列值
{
return int(sizeof(tmp_data[0])/sizeof(tmp_data[0][0]));
}

解决方案 »

  1.   

    不能这样判断,tmp_data[0]是个指针,sizeof(tmp_data[0])返回不了该数组的大小。
    如果参数传递的是二位数组,就会正常执行。
      

  2.   

    无法判断,因为不管怎样都要通过指针来传参数,
    而指针又不可能求得其大小。不管GetCol(float **tmp_data)是传以什么形式
    sizeof(?)实为sizeof(float)
      

  3.   

    用指针是得不出数据数量的,sizeof返回的始终将是指针大小4字节.只能操作数组名才行...
    一般要求客户指定缓冲区的函数,都要有个长度参数的,传递多维数组时,如果没有预先约定各维的大小,则也该有维数大小的参数.
      

  4.   

    由于tmp_data[0]是一个指针,sizeof(tmp_data[0])的值必定等于4。