【发布时间】:2013-01-18 01:18:47
【问题描述】:
我有一个函数将被传递一个 void 指针。此指针可以是 int、char 或 float。我知道将通过关联值传递给我的数据类型。例如,下面是我的函数的样子:
void * (int type, void * data);
如果传递给我的 void 指针最初是 char 类型,然后我将其转换回 char 类型,有没有办法确定与该指针关联的字节数?例如,如果我的函数调用如下:
f(1, (void *)"Hello world");
然后我将 void 指针转换回 char 指针
char * p = (char *)data;
有什么方法可以计算出使用了多少字节?我是否可能必须搜索空字符并计算它与原始指针的距离?我需要做什么才能找到 int 和 float 的大小?
【问题讨论】:
-
你需要一个 3r 参数,或者记录一个 int 和 float 的终止符值
标签: c casting void-pointers systems-programming