结构体指针作为函数参数!!!

bazzi2011 2011-12-16 03:58:23
需要用到的一个接口函数,第4个参数是结构体,请问怎么传参???


下面是接口函数定义:

#define MAX_TIMESEGMENT 4


int __stdcall SetXXXXX(
int _iLogonID //登陆的返回值
int iChannelNum //通道号
int iWeekday //星期,星期日到星期六为0~6
PNVS _strScheduleParam[MAX_TIMESEGMENT] //时间模板,支持最大4个时间段
);


下面是那个结构体的定义:


typedef struct{
unsigned short iStartHour; //开始时0-23
unsigned short iStartMin; //开始分0-59
unsigned short iStopHour; //结束时0-23
unsigned short iStopMin; //结束分0-59
unsigned short iRecordMode; //使能
)NVS, *PNVS;


那么我要调用这个函数接口,第四个参数应该怎么传参???

SetXXXXX(1, 5, 1, ???);//第四个参数怎么传???


下面是我自己写的传法,但每次都调用失败。

PNVS ps[4];
for (int i = 0; i != 4; ++i)
{
ps[i] = new NVS;
}
//假如我初始化ps[1]
ps[1]->iStartHour = 11;
ps[1]->iStartMin = 33;
ps[1]->iStopHour = 18;
ps[1]->iStopMin = 55;
ps[1]->iRecordMode = 1;

SetXXXXX(1, 5, 1, ps); //这样写???

SetXXXXX(1, 5, 1, &ps[1]);//还是这样写???

目前只有这两种写法可以执行正确,但这个接口函数的返回值是错误的,也就是说设置失败了,请问是不是还有别的传参方法。




...全文
196 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
just_swizard 2011-12-16
  • 打赏
  • 举报
回复
直接写ps

还有,数组是从0开始的,lz你一直折腾ps[1]是神马情况……
iamnobody 2011-12-16
  • 打赏
  • 举报
回复
SetXXXXX(1, 5, 1, &ps[1]);//还是这样写???



这样可以、、、
但是这是设置第二个ps;

按指针传递没有错
perl2003 2011-12-16
  • 打赏
  • 举报
回复
同意楼上的,
SetXXXXX(1, 5, 1, ps);
ps本来就是指针,不用再去取地址了
shenchenman 2011-12-16
  • 打赏
  • 举报
回复
SetXXXXX(1, 5, 1, ps);

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧