目前开发遇到一个问题,有一个动态库dll,需要传进去一个结构体数组,函数为
opt_api_init(InfoInitMarket* InitMarketInfo);
这个是结构体
typedef struct tagInfoInitMarket
{
char commID[COMMODITY_ID + 1]; //合约编码
char classID[CLASS_ID + 1]; //品种代码
char instrumentType; //合约类型:期货:F,看涨期权:C,看跌期权:P
double tick; //最小变动价位
long lastTradeDate;
}
然后我要在数据库里查询到这些数据,传入结构体数组,数组数目不确定,再调用那个函数。请问我应该怎么来实现。我是这样写的
tagInfoInitMarket *m_pInfoinit;
while(pdb->more()) //遍历查询出来的数据
{
m_pInfoinit = new struct tagInfoInitMarket;
memset(m_pInfoinit,0,sizeof(m_pInfoinit));
strcpy(m_pInfoinit->commID,pDB->Get("QQDM").c_str(),sizeof(m_pInfoinit->commID));
strcpy(m_pInfoinit->classID,pDB->Get("DMQZ").c_str(),sizeof(m_pInfoinit->classID));
}
这样写对吗?那我要怎么样遍历结构体数组啊?或者有没有其他办法,拜托各位大神了!
#include
#include
using namespace std;
struct
{
int a;
char b;
float c;
} x;//创建了一个变量x,包含三个成员
/************************************************************************......
答案就在这里:结构体(有数组和指针)
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
内存应该遵循谁申请谁释放的原则,不能是函数内申请调用者释放。
应该是:
第一次调用 opt_api_init(NULL) 返回个数。
然后调用者申请一个结构的数组;
再把数组的首指针作为参数调用 opt_api_init(),函数内就往这个数组中填内容。