vc 编程小认识

编程入门 行业动态 更新时间:2024-10-25 20:31:27

<a href=https://www.elefans.com/category/jswz/34/1768110.html style=vc 编程小认识"/>

vc 编程小认识

今天找了一个编写缓存表的程序,看起来还是可以的。就是感觉有点像学生的作业,就拿过来用了,后来在用的过程中碰到了一些问题,记录下来。

1、error LNK2001: 无法解析的外部符号              

                           这种以前就见到过,一般都是引用其他文件或dll中的未定义函数或变量,之前我碰到的都是这个样子的,但是这次我却怎么也没发现,后来明白了,是因为类中如果定义了静态变量 一定要在类外先进行初始化  如:int NODE::a = 1;    连接讲的比较清楚:.html

        2、作为缓存区,例子定义了单链表存储数据,用资源表(可读表与可写表)来索引资源,但是单链表只在第一次存储数据的时候 new char[length] ,第二次使用的时候如果是第一次已经new过的空间,则先memset然后memcpy ,逻辑上是没有问题,但是实际上如果第二次赋值空间需要比第一次大,那么就出现了new的空间不够用,debug版本就会报错,release版本一般不会报错,但是这里存在风险,可能会产生数据错误,而且在最后delete的时候,因为指针指向的空间比开始的时候new的空间大,那么也会报错。连接:.html            讲的不错。

        3、当我检测memory leak的时候发现,好多memory leak, 第一种情况:new了之后没有delete,会出现memory leak。。。 第二种情况:int转换成string的时候如果用ostream或sstream等会出现memory leak 。。。   顺便提一句,检测memory leak的方法同上连接。

        4、不知道为什么我本来new char[3] ,strcpy("ooo"), 但是存储之后却变成了"ooo        ?",就是说变长了,很迷惑,后来加多参数length在获取内容之后先进行截取,得到了正确结果。

         5、好多时候出现 heap coruption ,实际上是我主线程注销之后,调用的类已经注销,但是缓存还在写文件,调用写的变量已经被析构函数注销了。故线程调用报错,使用同步方式,解决了这个问题。

更多推荐

vc 编程小认识

本文发布于:2024-02-11 00:36:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1678194.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:vc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!