数据结构课程设计一元稀疏多项式总结
数据结构课程设计一元稀疏多项式总结
出现-842150451的时候,说明在某个地方申请空间的时候没有同时设立边界NULL。所以边界在数据结构建立的时候或者改变的时候要设置好。
当出现内存错误的时候,可以考虑一下尾巴是否已经完整了。是否有更新尾巴。(如果表格发生变动,更新表格含有的所有参数)
内存释放错误:free只能释放由malloc生成的空间。具体形式如下:
这是成功的例子:
Link p;
if(!(p=(Link)malloc(sizeof(Link)))) return ERROR;
free(p);
这是失败的例子:
int a=1;
int *b=&a;
free(a);——free与malloc配对使用,free只能释放malloc生成的空间。
一定要检查合法性,否则会出现内存错误(if(!s) return ERROR;,但是s没有s->next)
信息反馈:如果输入不合法,那么应该返回错误,如果输入正确,但是执行过程错误,那么也应该返回错误。
MFC里面的错误:
假如出现按钮按下去没有反应,是因为对话框类里面没有该按钮的函数;有了函数还不够,因为对话框头文件里面没有该按钮函数的原型;有了原型还不够,还需要有相应的操作,按钮是单击还是双击,需要在该对话框下加入某些东西,比如:在BEGIN_MESSAGE_MAP(CPolyDlg, CDialog)下添加ON_BN_CLICKED(IDC_chengfa, Onchengfa)。其实,与一些现有的按钮对比一下,模仿操作即可。
MFC里面采用了C++的模式,类以外的函数不能调用类的数据,而且也发现建立的结构不能用了。最后,我经过实验发现数据结构应该放在对话框的头文件里面,并在构造函数当中初始化。这样就解决了一部分内存问题。具体是:
1、在对话框的头文件类定义之前放入结构;
2、在类定义public里面加入结构体变量,并添加操作函数的原型
3、在cpp文论文范文http://www.chuibin.com 件里面所有按钮函数的前面加入操作函数的具体实现。注意这些函数是属于对话框类的,因此可以改变和调用之前在类结构里面定义的变量。如果不这样做,变量的写入就会出现“can't written”的内存错误,变量的修改就会出现“can't read”的内存错误。
这次课程设计一般出现的就是内存错误。内存错误的现象有很多,包括不能建立多个在对话框里面的结构体变量(在本次课程设计当中最多只能3个,有时甚至只能1个),对话框最多只能有6个,在程序运行过程当中正常运行一段时间之后就会出现警告,虽然可以忽略,但是内存肯定出现问题。
后来经过调试发现,是我的数据结构里面运用了NULL作为边界。在C里面运行是没有问题的,但是到了MFC里面,这就是内存错误的根本原因。所以,以后可以探索一下如何建立结构,不需要用边界,只需要通过探测总体数据量大小作为限制。
当然,有的时候也是因为操作失误,调用没有内容的空间导致内存错误。最常见的就是本来L.tail=NULL,然后还调用L.tail->next=s,这样就调用一样空的东西去做另外一些事情,这样就会导致错误。解决的方法就是要搞清楚数据结构,什么叫做空的表,是头跟尾地址相同叫做空,还是还是尾地址为空的时候为空。
输入项必须要用CString,这样才能用到库函数,比如调用IsEmpty()就需要用到CString类判断是否空
关于数据结构方面学到的东西: