VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 328|回复: 1

[求助] list问题

[复制链接]
42_avatar_middle
在线会员 Chigco.Orc 发表于 2018-4-28 23:50:49 | 显示全部楼层 |阅读模式
3驿站币
自己写的小例子。
这代码有什么问题吗?
运行报错。


  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include <vector>
  4. #include <list>
  5. using namespace std;

  6. struct Data
  7. {
  8.         int                        dwLen;       
  9.         vector<char>        data;
  10. };


  11. template<class T>
  12. class TList
  13. {
  14. public:
  15.         TList():m_pCurrentInList(){
  16.                
  17.         }
  18.         typedef list <T> _LIST;
  19.        
  20.         void Push(T *p)
  21.         {
  22.                 if (p == NULL)
  23.                 {
  24.                         return;
  25.                 }
  26.                 m_pCurrentInList->push_back(*p);
  27.         }
  28. private :
  29.         _LIST * m_pCurrentInList;
  30.        
  31. };

  32. int main()
  33. {
  34.         LPCSTR buf = "1";
  35.         int nLen = 4;

  36.         Data _data;
  37.         _data.dwLen = nLen;
  38.         _data.data.reserve(nLen);
  39.         _data.data.resize(nLen);
  40.         memcpy(&_data.data[0], buf, nLen);

  41.         TList<Data> m_list;

  42.         m_list.Push(&_data);
  43.     return 0;
  44. }

复制代码





上一篇:高手写个中英文键盘记录工具无窗口即可
下一篇:VC6.0不能编译staAFX.h头文件

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-4-29 00:01:38 | 显示全部楼层
memcpy(&_data.data[0], buf, nLen);
buf 的长度只有1个字符,占用1个字节。nLen 的长度是4,意思要复制4个字节,但是 buf 的长度不够4个字节,读取后面的内存就崩溃了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-12-11 02:51

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表