指向成员属性的指针

Leś*_*ajs 0 c

我有一个功能f(unsigned char ** data);.另外,我有一个指向pObj 带有unsigned char* pbCert成员的对象的指针.因此,我想执行如下操作:

f(pObj->&pbCert);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到了member identifier expected错误.

我设法使用这种方法解决问题:

unsigned char* temp = pObj->pbCert;
f(&temp);
Run Code Online (Sandbox Code Playgroud)

但是我很好奇,是否有一些聪明的记法技巧只在一行中做到这一点?

jtb*_*des 6

&整个成员访问表达式之前云:f(&pObj->pbCert).

(事实上​​,你自己的解决方案unsigned char* temp是不完整的!调用f(&temp)会修改temp,但不会修改pObj->pbCert,除非你pObj->pbCert = temp;在调用后手动重新分配它f.)