开发者

expression must have pointer-to-object type,subscript requires array or pointer type

  class RC5 {
      public:
        RC5() :
          _bufKey(new unsigned __int32[4]),
          _bufSub(new unsigned __int32[26]) {
        }
        unsigned __int8 Test(unsigned __int8 data);

        virtual ~RC5() {
          delete [] _bufKey;
          delete [] _开发者_StackOverflow社区bufSub;
        }
      private:
        unsigned __int32 *const _bufKey;
        unsigned __int32 *const _bufSub;
    };

    unsigned __int8 RC5::Test(unsigned __int8 data)
    {
                for (int i = 0; i < 4; i++)
                {
                    _bufKey[i] = (unsigned __int32)(data[i * 4] + (data[i * 4 + 1] << 8) + (data[i * 4 + 2] << 16) + (data[i * 4 + 3] << 24));
                    }       
    }

i got this errors : expression must have pointer-to-object type,subscript requires array or pointer type


It looks like the problem is that in your Test function you're passing in the data as an unsigned __int8 rather than as an array of these values. The subscripting with square brackets is what's causing the error. Changing the function to take it's value by array should fix this.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜