CONCEPT:通过引用传递指针
尝试实现:从函数获取更新的指针地址,作为参数传递时。
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引用更新。
当我在func执行后回到main时,我正在尝试更新第三个索引。如何实现这一目标。我有一种预感,即双重引用可能很方便。
答案 0 :(得分:5)
你是对的。指向指针的指针是一个简单的解决方案。在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
}