我是c ++的初学者,我正在尝试编写一个程序来读取Mac的CPU温度。
我正在读取CPU温度作为字节数组,然后温度是该数组中的第一个值。但是,当我尝试返回数组的第一个值时,出现SIGABRT错误。
我不知道我在做什么错
这是我的代码:
void SMCKit::readKey(smc_key_t smcKey, SMCBytes &result) {
SMCParamStruct inputStruct = SMCParamStruct();
inputStruct.key = smcKey.code;
inputStruct.keyInfo.dataSize = (UInt32) smcKey.info.size;
inputStruct.data8 = kSMCReadKey;
SMCParamStruct resultStruct = callSMC(inputStruct);
std::copy(std::begin(resultStruct.bytes), std::end(result), std::begin(result));
}
unsigned char SMCKit::readCPUTemp() {
SMCKey key = SMCKey("TC0F", types.SP78);
unsigned char readResult[32];
readKey(key, readResult);
return readResult[0]; // -> the error occurs here
}
使用调试器,我发现代码运行良好(并且readResult具有预期的结果),直到最后一行。在返回读取结果的行中。