关于使用CMap和Clist的问题,在线等待,解决给分,up也有分

myelan 2003-12-13 05:12:16

整个数据结构如下:
map:
+-----------------+
|方案名1|方案列表1|
+-----------------+
|方案名2|方案列表2|
+-----------------+
list:
+---------------------------------+
|内容结构1|内容结构2|...|内容结构n|
+---------------------------------+

由于内容结构数不是一定的,因此使用CMap中嵌套CList。代码如下:

typedef struct
//方案内容结构
_ContextItem
{
//内容1
CString tPlayTime;
//内容2
CString szMusicName;
//内容3
CString szMusicPath;
} ContextItem;



class CProjectItem
{
public:
//方案内容列表
CList<ContextItem, ContextItem>* list_context;
};


class CProjectItemControl
{
public:
//方案名字对应方案内容
CTypedPtrMap<CMapStringToOb,CString,CProjectItem*> adfs;
};


但是在插入,修改,删除的时候,会报错。
大虾们帮帮忙,能够帮我看看结构定义是否有问题,最好能够给出插入,修改的代码。
如果我的结构定义不好,请帮忙修改一下。
马上给分,在线等待!!!!
...全文
100 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx_sanjin 2003-12-13
  • 打赏
  • 举报
回复
Damachli(马大哈) 说得对!

你没有为指针分配内存就使用了:——)
myelan 2003-12-13
  • 打赏
  • 举报
回复
顺便问个问题

我现在在调试程序的时候
每次点执行快捷键会谈出对话框
要我编译所有的文件

说什么:one or more file are out of data or do not exist
然后列了一堆obj

什么选项可以调回来,感谢
Damachli 2003-12-13
  • 打赏
  • 举报
回复
你这是内存溢出的错误,你把CList和CMap里面都用指针,然后,在生成的时候用New生成,然后,在删除的时候用Delete方式,
myelan 2003-12-13
  • 打赏
  • 举报
回复
我的代码是这样的:
void CFileioDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CProjectItemControl cpic;
CProjectItem cpi,cpi1;
CProjectItem* cpi2;
ContextItem ci1,ci2,ci3,ci4;
ci1.tPlayTime="11";
ci1.szMusicName="12";
ci1.szMusicPath="13";
//cpi.list_context->AddTail(ci1);
cpic.adfs["pname"]=&cpi;
cpic.adfs.Lookup("pname",cpi2);

if (!(*cpi2).list_context->IsEmpty())
AfxMessageBox("ok") ;
else
AfxMessageBox("fail") ;

}

通过编译,运行出错为0xccccccccc内存不能read
怎么办,哪里错了????

如果上面代码的
//cpi.list_context->AddTail(ci1);
加上那么就是debug assertion failed
终止、重试、忽略


求救
myelan 2003-12-13
  • 打赏
  • 举报
回复
是的,我是参考的msdn的那个程序

折磨人呀
phoenixli 2003-12-13
  • 打赏
  • 举报
回复
up
kongyunzhongque 2003-12-13
  • 打赏
  • 举报
回复
CProjectItem 从CObject继承。看看MSDN关于CMap的范例
samples\VC98\mfc\advanced\collect
myelan 2003-12-13
  • 打赏
  • 举报
回复
有人帮忙么
myelan 2003-12-13
  • 打赏
  • 举报
回复
楼上的,我就是写了好多插入操作
结果报内存什么的错误
或者直接跳到mfc的文件中报错去了

faint

你只要写一两句话试一试就好了
我的代码就是几句话的
liu_swallow 2003-12-13
  • 打赏
  • 举报
回复
不会是List和Map的错
贴出插入以及其它操作的代吗来!
liu_swallow 2003-12-13
  • 打赏
  • 举报
回复
先抢分
myelan 2003-12-13
  • 打赏
  • 举报
回复
楼上的大侠,应该一帮到底,呵呵
bluebohe 2003-12-13
  • 打赏
  • 举报
回复
list和map存指针就不容易出错了

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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