赐教

解决方案 »

  1.   

    unsigned char Data[t];如何知道t的大小?
      

  2.   

    t=sizeof(Data)/sizeof(unsigned char);
      

  3.   

    sizeof(Data)=4  你们说的都不对,麻烦调试一下再回复。
      

  4.   

    t是你自己定义的一个数组大小的变量,一般应该是INT,或LONG,那你自己应该知道它的大小了吧。
      

  5.   

    同意 yinzhaohui(努力)的看法,不知道你 用动态取得t有什么意义?
      

  6.   

    我是知道t的大小,但我还想知道怎么利用譬如说类似sizeof的方法来知道它的大小,可以吗?这是某种悖论,但是希望有解决方法。
      

  7.   

    bool GetPicture(int Type, unsigned char Data[1024], int& nCount)
    {
    char ans[2048];
    memset(ans,0,2048);
    }
    如果我用某种方法得到Data的大小为t=1024,定义ans的时候就不用写死成2048,可改写成
    char* ans;
    ans=new char[2*t];
    memset(ans,0,t);
      

  8.   

    sizeof(Data) 是unsigned char *的长度
    /sizeof(Data[0]) 是unsigned char 的长度 
    不能这样作
    函数中多加一参数 count 来表示Data的数组的个数
      

  9.   

    t=sizeof(Data)/sizeof(Data[0])
    t就是所求啊
      

  10.   

    是啊,我用TC2.0和VC都试过了,是这个结果,但我觉得这个结果应该依赖于编译器。
      

  11.   

    我明白了,问题出在对问题的描述上。
    现在不是这样的程序
    unsigned char Data[10];
    int n=sizeof(Data);   //结果为10而是这样void f(unsigned char Data[])
    //等同于 void f(unsigned char *Data)
    {
      int n=sizeof(Data); // 结果为 4
    }
      

  12.   

    去参考一下Windows API的常用形式吧,在要传数据的地方都是传一个指针加一个数组长度参数。如HRESULT CoCreateInstanceEx(
      REFCLSID rclsid,
      IUnknown * punkOuter,
      DWORD dwClsCtx,
      COSERVERINFO * pServerInfo,
      ULONG cmq,  //MULTI_QI 结构数组的长度
      MULTI_QI * pResults
    );