c - 指向成员属性的指针

标签 c

我有一个函数 f(unsigned char ** data);。此外,我还有一个指向对象 pObj 的指针,该对象带有一个 unsigned char* pbCert 成员。因此,我想执行这样的操作:

f(pObj->&pbCert);

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

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

unsigned char* temp = pObj->pbCert;
f(&temp);

不过我很好奇,是否有一些聪明的符号技巧可以只在一行中做到这一点?

最佳答案

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

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

关于c - 指向成员属性的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672016/

相关文章:

在 C 中找不到 Fnmatch 的正确模式(不包括两位数)

c++ - ubuntu 17.04 和 -mx32 编译标志 multilib

c - linux读取字符设备

c - 编译共享对象时包括版本号

C 初学者 - Hello World 程序在 Windows 上从命令提示符不执行任何操作

c++ - 如何像pygame一样限制sdl2 fps

c - Malloc 和链表的问题

c - 获取仅初始化第一项的数组的内存空间

c - 在 Ubuntu 中无法使用 getchar 打印字符数

c - 在 Ada 中访问 C 字符串时出现段错误