我定义了一个 char 数组 char data[1024]
另外定义了一个结构
typedef struct
{
char a;
char b;
char c;
char d[25];
}RData,*p_RData;在程序中我定义 RData rData;
我想从data数组的36个元素起拷贝到 结构体rData中
我使用 memcpy(&rData,&data[36],sizeof(rData));
这种方法 但是行不通 不知道为什么?data数组中的数据 是从SOCKET 中Rev到的
调试的时候可以监视到里面的值 而且也可以输出
但是 拷贝付值的时候 总是不行哪位高人指点一下啊 不胜感激
另外定义了一个结构
typedef struct
{
char a;
char b;
char c;
char d[25];
}RData,*p_RData;在程序中我定义 RData rData;
我想从data数组的36个元素起拷贝到 结构体rData中
我使用 memcpy(&rData,&data[36],sizeof(rData));
这种方法 但是行不通 不知道为什么?data数组中的数据 是从SOCKET 中Rev到的
调试的时候可以监视到里面的值 而且也可以输出
但是 拷贝付值的时候 总是不行哪位高人指点一下啊 不胜感激
解决方案 »
- 8位bmp图像的颜色表问题
- 编译mfc时出错
- 如何获取web页面上mediaplayer的数据
- 求图像交替显示与可拖动平滑显示的解决方案,贡献程序者可另行给高分
- 谁有好用的模拟液晶字体的VC控件呀?
- DCOM的问题
- CS(反恐游戏)中一个辅助程序的实现(特别欢迎系统、游戏、外挂、图形图象、界面等方面的爱好者)
- 我在diaog上有个iocn的图标 我想用鼠标点它 能拿起来移动到diaog其他地方 用什么函数?
- 感谢chenhq(chenhq) 。近来接分
- CListCtrl的简单问题.先回答正确先得分(只给一人)!!!
- CFile的二进制文件读取问题,CFile::modeReadWrite标记和CFile::modeRead标记
- 如何将VC++编制的.exe文件及几个DLL文件打包成一个类似于绿色软件的免安装的.exe文件呢?谢谢
而且 在RELEASE调试过程中 VC编辑器这句旁边有个 绿条 并且 单步执行的时候
这句memcpy(&rData,data+36,sizeof(rData)); 就直接跳到了下一语句去了 没有执行
在DEBUG调试中 编译没有问题 按F5调试的时候 弹出一个断言错误
跟踪后是
_AFXWIN_INLINE int CWnd::SetWindowRgn(HRGN hRgn, BOOL bRedraw)
{ ASSERT(::IsWindow(m_hWnd)); return ::SetWindowRgn(m_hWnd, hRgn, bRedraw); }
这个断言
真不知道什么问题了
有没有可能电脑中了病毒而产生程序错误和调试问题?
char data[4];
data[0]='0';
data[1]='1';
data[2]='2';
data[3]='3';
typedef struct
{
char a;
char b;
char c;
char d[25];
}RData,*p_RData;
RData rdata;
memcpy(&rdata,data+1,sizeof(rdata));
cout<<rdata.a<<endl;
cout<<rdata.b<<endl;
cout<<rdata.c<<endl;
cout<<rdata.d<<endl;
1 你说的那个调试出错问题是因为窗口已经被析构了,或者你内存误操作把句柄给覆盖了,你自己去找吧。
2 你说的拷贝的问题,说明你对字符串操作的概念不明白它的实质。
把那几行代码换成如下:
char szData[1024]="012345678901234567890123456789";
RData rData;
memset((void*)&rData,0,sizeof(rData));
memcpy((void*)&rData,(void*)szData,sizeof(rData)-1)//关键理解这里跟你的代码有何区别还有最重要一点,任何变量再使用之前一定注意要初始化,这个风格你一定要养成。切忌