C++ 将Double复制到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++ 将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”:两个重载都不能转换所有参数类型 在尝
在尝试匹配参数列表(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));