return 来自函数的 uint8_t 并在主函数中打印它

return a uint8_t from a funtion and printing it in the main function

我有以下功能

    uint8_t func(){
        uint8_t key[16] = {0};
        // some operations
        return key;
     }

我在主函数中调用这个函数

int main(void){
    uint8_t rcKey[16] = func();
    for (int i = 0; i < 16; i++)
    {
        printf("%x ", rcKey[i]);
    }

}

我在这里做错了什么?我收到无效的初始值设定项错误

不能通过函数调用直接初始化数组。您只能将单个元素初始化为初始化列表的一部分。

您可以改为将数组传递给函数以设置相关值。

void func(uint8_t key[]){
    // some operations
 }

int main(void){
    uint8_t rcKey[16]
    func(rcKey);
    for (int i = 0; i < 16; i++)
    {
        printf("%x ", rcKey[i]);
    }

}