如果函数返回一个指向动态/未知大小的uint8_t数组的指针,那么如何使用该指针填充我的本地数组?通过指针动态复制到uint8_t数组中
uint8_t * func(void){
uint8_t bs[] = {0x34, 0x89, 0xa5}; //size is variant
return bs;
}
void main(void){
uint8_t * p;
static uint8_t myArr[10]; //size is always greater than what's expected from p
p = func();
}
如何使用p填补myArr,该这可能在不同的调用是不同的大小?这是否可以确定阵列的大小,p指向?
请原谅我的编程经验!谢谢。
不,事实并非如此。在你的例子中,'func'返回一个指向本地数组的指针。只要func返回,该阵列就不复存在。所以'p'主要指向内存,你根本没有权利使用。 – Mat
返回'bs'in'func'导致UB,不要这样做 – user3528438
是的,这也是一个问题,[这里是关于它的过去的问题](http://stackoverflow.com/questions/4570366/pointer- to-local-variable) – Diego