我有以下类型:
typedef short DCTELEM;
typedef DCTELEM DCTBLOCK[64];
最后一个类型的数组和一个指向malloc分配的短裤数组的指针:
DCTBLOCK MQUAD;
short * ptrArray;
我需要MQUAD下注到ptrArray指向的特定位置;
在C语言中,我会写像
MQUAD = ptrArray + 3 * 2;
然后将MQUAD指向所需的位置,但是我得到了
在C++中,因为我知道数组的类型和指向某种类型的指针之间存在差异。
最佳答案
您的MQUAD
变量是一个数组,而不是一个指针,因此无法分配给它(感谢Remy Lebeau的评论)。如果您声明为:
DCTELEM *MQUAD;
然后您可以分配给它:
MQUAD = reinterpret_cast<DCTELEM *>(ptrArray + 3 * 2);
这是使用C++强制转换语法。您也可以使用C强制转换语法。
关于c++ - C++类型转换:错误C2440: '=':无法从 'short *'转换为 'DCTBLOCK',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3089548/