把指针复制到发送缓冲里
时间:2010-04-02 来源:Jan365
最近做的一个程序,需要通过DomainSocket把对象(实际是结构体)的指针发送给另一个线程。这就需要先把指针复制到发送缓冲里,再进行发送。如下图所示:
先看代码:
缓冲区通过char指针定义,用malloc申请空间;对象指针以形参的形式传入。buffer所指向的空间要存储一个指针,显然buffer要先通过强制类型转换为指向指针的指针(EOBJECT **)buffer,再对其指向的变量*(EOBJECT **)buffer赋值,结果就如下面代码那样了。咋一看比较费解。
C的指针提供了很好的灵活性,但是也带来不少比较难理解的情况,熟练使用指针才能发挥c的魅力,写出优雅的代码。
先看代码:
int foo(OBJECT *obj)
... |
缓冲区通过char指针定义,用malloc申请空间;对象指针以形参的形式传入。buffer所指向的空间要存储一个指针,显然buffer要先通过强制类型转换为指向指针的指针(EOBJECT **)buffer,再对其指向的变量*(EOBJECT **)buffer赋值,结果就如下面代码那样了。咋一看比较费解。
C的指针提供了很好的灵活性,但是也带来不少比较难理解的情况,熟练使用指针才能发挥c的魅力,写出优雅的代码。
相关阅读 更多 +