概念:通过引用传递指针
尝试实现:当作为参数传递时,要从函数获取更新的指针地址。
int main(void)
{
uint8_t unArray[10] = {0}; // unint8_t is type def as unsigned char
uint8_t * pmyPtr;
pmyPtr = unArray;
func(pmyPtr);
*pmyPtr = someValue3;
}
void func(uint8_t * unPtr)
{
*unPtr = someValue1;
unPtr++;
*unPtr = someValue2;
unPtr++;
}
假设我们的unArray地址为0x0001000。因此,pmyPtr将为其分配了一个常量指针,其值为0x0001000。
当指针传递给函数func时,数组的某些索引(前两个)通过DE引用进行更新。
函数执行后回到主目录时,我正在尝试更新第三个索引。如何做到这一点。我预感双重取消引用可能会派上用场。
你是对的。指向指针的指针是一种简单的解决方案。在c ++中,它可以在语法上隐藏为参考。
main()
{
uint8_t unArray[10] = {0}; // unint8_t is type def as unsigned char
uint8_t * myPtr;
myPtr = unArray;
func(&myPtr);//NOTICE ADDRESS TAKING
*myPtr = someValue3;
}
void func(uint8_t ** unPtrPtr)//ONE MORE STAR
{
uint8_t * unPtr=*unPtrPtr;//CHANGED
*unPtr = someValue1;
unPtr++;
*unPtr = someValue2;
unPtr++;
*unPtrPtr = unPtr;//CHANGED
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句