VC++Cobarray问题
来源:百度知道 编辑:UC知道 时间:2024/05/31 17:38:43
class __declspec(dllexport) YuBaoInput : public CObject
{
DECLARE_SERIAL(YuBaoInput)
public:
YuBaoInput();
virtual ~YuBaoInput();
void Serialize(CArchive& ar);
public:
int nCSID;//电站号
COleDateTime dBEGTIME;//预报开始时间
COleDateTime BEGTIME;//预报因子起始时间
COleDateTime ENDTIME;//预报因子序列结束时间
CObArray yinzi;//预报因子
};
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa);
#endif
/*............................*/
double x[9];
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa)
{
for(i=0;i<=n;i++)
{
YuBaoInput *x[i]=(YuBaoInput*)m_pa->yinzi.GetAt(i);
}
}
运行出现错误“D:\调试程序\2009\2009.cpp(121) : error C2440: 'initializing' : cannot convert from 'class YuBaoInput *' to 'class YuBaoInput *[]'
There are no c
{
DECLARE_SERIAL(YuBaoInput)
public:
YuBaoInput();
virtual ~YuBaoInput();
void Serialize(CArchive& ar);
public:
int nCSID;//电站号
COleDateTime dBEGTIME;//预报开始时间
COleDateTime BEGTIME;//预报因子起始时间
COleDateTime ENDTIME;//预报因子序列结束时间
CObArray yinzi;//预报因子
};
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa);
#endif
/*............................*/
double x[9];
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa)
{
for(i=0;i<=n;i++)
{
YuBaoInput *x[i]=(YuBaoInput*)m_pa->yinzi.GetAt(i);
}
}
运行出现错误“D:\调试程序\2009\2009.cpp(121) : error C2440: 'initializing' : cannot convert from 'class YuBaoInput *' to 'class YuBaoInput *[]'
There are no c
改成这样绝对可以,其它人的都没有分配内存,肯定错
/*............................*/
YuBaoInput x[9];
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa)
{
for(i=0;i<=n;i++)
{
x[i]=(YuBaoInput*)m_pa->yinzi.GetAt(i);
}
}
程序怎么不完整,我试一下。
YuBaoInput *x[10];//n = 10?
extern __declspec(dllexport) void LongForcast(YuBaoInput *m_pa)
{
for(i=0;i<= 9;i++) //0-9?
{
x[i]=(YuBaoInput*) m_pa->yinzi.GetAt(i);
}
}
YuBaoInput *x[i]=(YuBaoInput*)m_pa->yinzi.GetAt(i);
数组声明并初始化的时候,必须用 {} 为每一个数组元素赋值。
我知道你的本意是声明一个数组,然后用一个循环给这个数组赋值,但是你把“声明 + 循环赋值”和“声明 + 赋初值”弄混了,你的写法变成了后者,即声明数组的同时赋初始值
所以是数组声明位置错了,建议在循环外部声明数组,循环内部为数组元素赋值:
YuBaoInput *x[n];
for(i=0;i<=n;i++)
{
x[i]=(YuBaoInput*)m_pa->yinzi.GetAt(i);
}