如何将uint8_t*
分配到uint16_t
?
我有3个功能:
functionC:当它是id_A时,它将数据分成两个
functionA:获取id_A的大小
functionB:根据functionA
然而:
1)functionA使用uint8_t*
来返回大小
2)FunctionB使用uint16_t size
作为输入
3)我需要将这些尺寸组合为functionC
中functionB的输入 4)如何将uint8_t*
分配到uint16_t
?是正确的方法:[B]中的(uint16_t)*outputSize
?
functionA(uint16_t id, uint8_t* size){
//return size based on id
}
functionB(uint16_t id, uint8_t* data, uint16_t dataSize){
//input:id, input: dataSize and return data
}
functionC(id){
uint8_t* outputSize;
uint8_t* outData;
fuctionA( id, outputSize); //[A]outputSize is ouput here
functionB( id, outData, (uint16_t)*outputSize)); //------[B] outputSize from [A] as input here
}
答案 0 :(得分:1)
你必须在某处分配内存。摆脱指针并使用普通变量:
uint8_t outputSize;
然后拨打fuctionA(id, &outputSize);
然后简单地将outputSize
传递给下一个函数:
functionB( id, outData, outputSize);
或者如果你想明确:
functionB( id, outData, (uint16_t)outputSize);