【发布时间】:2014-09-10 07:26:16
【问题描述】:
我有以下来自面向对象编程 C 书籍的代码:
{
struct Set { int count; };
struct Set * set = malloc(sizeof(struct Set));
void * p = set;
const size_t size = * (const size_t *) p;
}
我无法理解最后一行的工作原理和原因。 size_t size 是 size_t 类型指针的取消引用值。 type_t 类型的指针是从void* p 转换而来的。
当我将void* 转换为type_t* 时发生了什么,我在书中或在线教程中找不到任何信息。有人可以向我解释一下或推荐给我一个好的教程吗?
【问题讨论】:
-
请先格式化您的代码。
-
《面向对象的编程C书》让我觉得非常非常陌生……那本书叫什么?
-
Axel-Tobias Schreiner 的“Ansi-C 面向对象编程”。在一些 stackoverflow 问题中建议在这里。
-
有兴趣的朋友可以在here或网上轻松找到本书
标签: c pointers void-pointers