如果函數返回一個指向動態/未知大小的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