有没有一种更安全的方式来从泛型指针中对数据进行类型转换? 更具体地说,是否有方法来检查类型转换是否安全。检查正确的类型转换
假设我们从网络代码中的recv函数接收到void *数据。
假设有两种结构:
struct data1
{
int val;
double val1;
}
struct data2
{
char str[100];
long double val3;
}
假设我们有以下收到电话:
recv(int s, void *buf, size_t len, int flags);
与Buf的类型可以是结构数据1或结构数据2的。 这里是我的问题:
我们可以执行某种检查其中的类型存储在BUF?
如果出现以下情况,会发生什么:
// buf contains a message of type data1 struct data2 *d2; // assume its malloced too d2 = (struct data2)buf; d2->val3=3.145
由于t_data1和t_data2具有相同的值(零),我不知道如何区分它们...:D – 2009-12-14 05:31:31
哎呀,呵呵。固定。 :P – GManNickG 2009-12-14 05:43:29