【发布时间】:2011-02-11 10:26:37
【问题描述】:
现在安全吗?
#include <stdio.h>
#include <string.h>
long lee( void *v1)
{
long i1;
memcpy(&i1,v1,sizeof(long));
return i1;
}
//Added conversion to double:
double lee_d( void *v1)
{
double i1;
memcpy(&i1,v1,sizeof(double));
return i1;
}
void main()
{
long val=1777777;
long ii;
ii=lee((void *) &val);
double dd=377e-177;
dd=lee_d((void *) &dd);
ii=ii;
}
在 MS studio 下运行良好。
我不使用这个指针翻译,但在使用 curl 库时
【问题讨论】:
-
你想用这个代码做什么 O.O 你对“安全代码”的定义是什么?
-
这是一个
void*,它没有任何安全... -
请格式化您的代码。
-
你不需要投射到
void*,所以不要这样做。事实上,如果你把这个程序归结为它的本质,你最终会得到像int main() { return 0; }这样的东西。 -
你是对的。但是我已经将这种转换与传递 (void *) 参数的 Curls 函数一起使用