Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将Double复制到C++;_C++_Visual C++ - Fatal编程技术网

C++ 将Double复制到C++;

C++ 将Double复制到C++;,c++,visual-c++,C++,Visual C++,我复制一个双值到一个空洞*。我怎么能用C++来做?< /p> 目前我已经尝试了C++10 strcpy(Trade->MtTr.MPData->MPTrXML.da,dCou) Trade->MtTr.MPData->MPTrXML.da-->这是一个空白* dCou是双重的 strcpy(Trade->MtTr.MPData->MPTrXML.da,dCou) 我希望void*应该包含双精度值。 实际上,我得到的错误如下: 错误C2665:“strcpy”:两个重载都不能转换所有参数类型 在尝

我复制一个双值到一个空洞*。我怎么能用C++来做?< /p> 目前我已经尝试了C++10

strcpy(Trade->MtTr.MPData->MPTrXML.da,dCou)

Trade->MtTr.MPData->MPTrXML.da-->这是一个空白*

dCou是双重的

strcpy(Trade->MtTr.MPData->MPTrXML.da,dCou)

我希望void*应该包含双精度值。 实际上,我得到的错误如下:

错误C2665:“strcpy”:两个重载都不能转换所有参数类型


在尝试匹配参数列表(void*,double)时

如果您有正当理由试图将
double
复制到
void*
,则一种方法是使用:

#包括
//..
//假设Trade->MtTr.MPData->MPTrXML.da有效:
双dCou;
//...
memcpy(Trade->MtTr.MPData->MPTrXML.da和dCou,sizeof(double));

使用
void*
你想实现什么?你一定做了一些非常不寻常的事情。请告诉我们更多。C++是一种严格的类型检查语言,这种转换不是自动的(通常是不正常的)转换。我能想到的一个原因是处理一些低级<代码> C < /C> > API,使用<代码> Vult*/Cuff>作为通用类型。否则,我看不出这在纯C++应用中可以使用什么。@ DaielelkAMiLokZar:真正坏的是二进制代码上的代码> StrucP</C>。即使在C语言中,对double调用strcpy也显示出完全不理解
strcpy
最多复制并包括第一个空字节,该空字节可能存在于
double
中,也可能不存在。如果不是,则有一个越界内存读取,这是未定义的行为。如果第一个空值不在双精度的末尾,则只复制其中的一部分,接收器将失败。谢谢,@PaulMcKenzie它完全按照我的要求工作。
#include <cstring>
//..
// Assuming Trade->MtTr.MPData->MPTrXML.da is valid:
double dCou;
//...
memcpy(Trade->MtTr.MPData->MPTrXML.da, &dCou, sizeof(double));