C-初学者问题:
我有以下代码在 line 处崩溃unsigned long rdwValue = *((unsigned long*)pParamPtr);
。我正在使用 GCC 在 Fedora 机器上交叉编译 MIPS32 目标的代码
unsigned char* pParamPtr = GetNvParamRamAddress(ParameterId, swIndex);
if (0 != pParamPtr)
{
unsigned long rdwValue = *((unsigned long*)pParamPtr);// CRASHES
}
但是如果我把里面的线if
改成
rdwValue = *(pParamPtr);
这行得通。
我是否在使用这种类型转换做违反规则的事情?
我需要的是从地址开始pParamPtr
到 rdwValue 中获取四个字节 [无符号长为 4 字节]。
这是memcpy
要走的路吗?