返回无符号字符数组的值将引发SIGABRT错误

时间:2019-05-27 11:13:01

标签: c++

我是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具有预期的结果),直到最后一行。在返回读取结果的行中。

0 个答案:

没有答案