1

我正在用 C 编写一些代码,并处理能够说“将其转换为指向具有与此数字相同字节数的数据类型的指针”的情况。

一个例子会让它更清楚 - 我size_t用来获取系统上指针的大小。现在我想可移植void *地转换一个指向该大小数据类型的指针的指针。我知道我可以将它转换为任何指针类型并且它的长度相同,但是指针算术根据变量指向的数据类型而有所不同。此外,在我的情况下size_t恰好是 8 个字节, 也是如此double,所以我可以将 myvoid *转换为 a double *,但我想要一个可移植的解决方案。有没有办法做到这一点?

4

2 回答 2

0

如果您想要一个指向与指针大小相同的类型的指针,为什么不使用void **?

于 2012-04-11T10:24:22.917 回答
0

有什么问题size_t*(假设我理解你的问题)

在一般情况下,您需要指向带有n字节的类型的指针,您可以执行以下操作:

void *voidptr=... //assign whatever you want.
char (*myptr)[n]=voidptr; //a pointer to char[n]
于 2012-04-11T10:25:58.077 回答