如何将uint8_t*
赋值给uint16_t
?
我有3个功能:
functionC:当id_A时,将数据分成两部分
函数A:获取id_A的大小
functionB:根据 functionA 的大小获取 id_A 的数据
但是:
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
}
最佳答案
你必须在某处分配内存。摆脱指针并使用普通变量:
uint8_t outputSize;
然后调用fuctionA(id, &outputSize);
然后只需将 outputSize
传递给下一个函数:
functionB( id, outData, outputSize);
或者如果您想明确表示:
functionB( id, outData, (uint16_t)outputSize);
关于c - 如何在 C 中将 uint8_t* 分配给 uint16_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174295/