C:指向指定长度类型的指针

时间:2012-04-11 10:14:48

标签: c pointers casting

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

在一般情况下,您需要指向具有n字节的类型的指针,您可以这样做:

void *voidptr=... //assign whatever you want.
char (*myptr)[n]=voidptr; //a pointer to char[n]