抢分了---关于vector返回值接受问题

rundll64 2017-06-17 02:40:58


#include <iostream.h>
#include <vector>
using namespace std;

#define POSVALUE 50
typedef struct PosDataItem
{
char ItemCode[POSVALUE];
}PosDataItem,*pPosDataItem;

typedef struct _PosData
{
char POSID[POSVALUE];
PosDataItem pItem;
}_PosData,*pPosData;
typedef std::vector<_PosData> VECTOR_DATA;
VECTOR_DATA aa;
VECTOR_DATA* a(VECTOR_DATA *p);

typedef struct PosDataItem1{
char chcolValue01[POSVALUE];
}PosDataItem1,*pPosDataItem1;

typedef struct _PosData1{
char chcolValue01[POSVALUE];
PosDataItem1 pItem;
}_PosData1,*pPosData1;
typedef std::vector<_PosData1> VECTOR_DATA1;
VECTOR_DATA1 *bb;



VECTOR_DATA* a(VECTOR_DATA *p){
return p;
}

int main(){
_PosData mp;
sprintf_s(mp.POSID,"%s","00");
for (int x = 0;x<10;x++)
{
sprintf_s(mp.pItem.ItemCode,"%d",x);
aa.push_back(mp);
}
bb = (VECTOR_DATA1*)a(&aa);

int c = bb->size();
for (int x = 0;x<c;x++)
{
printf("value = %s",bb[x].chcolValue01);
}
return 0;
}


在屏蔽掉printf后,程序编译正常

调试过程中,bb有内容

但是屏幕打印时,就提示下面的错误
error C2039: “chcolValue01”: 不是“std::vector<_Ty>”的成员
1> with
1> [
1> _Ty=_PosData1
1> ]

高手出手拿分了
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwqwqw408 2017-06-18
  • 打赏
  • 举报
回复
VECTOR_DATA1 *bb; 这里bb是个指针,bb[x]的类型就是VECTOR_DATA1 ,而不是_PosData1
paschen 版主 2017-06-18
  • 打赏
  • 举报
回复
bb[x]类型是实际是std::vector<_PosData1>,而不是_PosData1,所以没有成员chcolValue01
rundll64 2017-06-17
  • 打赏
  • 举报
回复
问题解决了,来个混分的

64,647

社区成员

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

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