C++
文章平均质量分 51
豆浆D油条
嵌入式专业毕业,喜欢研究底层和算法。追求高效性能
展开
-
关于IcmpSendEcho2的使用和回调问题
IcmpSendEcho2的使用和回调问题原创 2023-02-17 16:13:10 · 1045 阅读 · 1 评论 -
C/C++一个很好用的关键字——sizeof
众所周知,sizeof是用来求变量或者数据类型所占用的内存大小。但一般人的写法都是sizeof(数据类型),很少有人写sizeof(变量);sizeof可也以用来求数组长度的,不管是求一维数组还是二维数组,但它不能用于求数组里面的字符串长度。而且sizeof很多情况下都是在编译时完成,此时sizeof得出的结果是常量,所以编译时完成的sizeof,并不会额外增加程序运行时的负担。求变量长度。可以用于C++的模板函数和auto关键字修饰的变量。//源.cpp#include <stdio.h&原创 2022-03-26 18:21:26 · 959 阅读 · 0 评论 -
QT Critical error detected c0000374
在使用QT写GraphicsView时,运行程序添加Item时,无缘无故报错了,debug调试也是跳到QT源码上面去,还都不是报同一个位置的错误,有些还是new的位置报错。而报错信息是“Critical error detected c0000374”,搜出来的文章也都是内存不足、越界之类,还有说用智能指针的问题,但以上问题我都没有。当内存充足时,new还能报错,那应该是跟内存没多大关系了。加上在代码不改或者一些毫无影响的改动的情况下,报错还不是在同一个地方,我觉得可以排除内存不足、越界之类。1、但程序蹦原创 2021-07-30 12:38:45 · 4688 阅读 · 5 评论 -
自己给自己写了一个有趣的BUG,数组越界越到程序自身的安全空间
当初为了把0x0-0xFF打乱,因为char和unsigned char保存到内存的值都是一样的,都是十六进制(也就是-1的char和255的unsigned char做一个字节的比较时是相等的,因为十六进制都是0xFF),只是表示出来不一样而已,所以就没用unsigned char。结果就出现了上面BUG,当value=-23~-21时才会这样,count的值大于了256,跳出了循环。原因:打三个地址出来一看,count的地址(0x4ffc28 )- flag(0x4ffc40)等于十进制的-24,.原创 2020-06-11 16:00:37 · 264 阅读 · 0 评论 -
VS编译错误 C2675 一元“++”:“_Iter”不定义该运算符或到预定义运算符可接收类型的转换
如果在错误列表那双击就会跑到标准库的文件里去了,但错误明显不可能是标准库的问题,肯定是自己哪里写错。因为VS的编译信息会在输出窗口打印出来,所以在输出窗口那搜索"error"就可以定位到打印编译错误的地方,但哪行并不是我们想要的,直接看下一条编译信息,看在哪个文件哪行(在编译信息那双击就行),这样就可以知道错误在哪了。以上就是我对那个编译错的查找方法,导致这错误的原因是对map的insert函数错误使用。...原创 2020-05-23 15:19:14 · 2557 阅读 · 0 评论 -
编译器的堆空间不足
我用debug模式一点事都没有,结果切换回release编译报了10个错误,全是"编译器的堆空间不足"。网上找到有条说跟内存有关,然后我看了下任务管理器,16G内存用了10G,但还是报这个错,后来把写软件关联,把内存降到了3G多,然后再编译就通过了。很奇怪...原创 2020-04-10 16:00:38 · 6540 阅读 · 2 评论 -
二进制:没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)
我遇到的问题是“二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换) ”。双击错误信息后,到了xstddef文件的struct less的()操作符重载那。遇到这种直接跑到模板下面的情况,通常都是用了某个模板类等模板相关的类型、函数,而我是自己定义了一个结构体,然后用了set容器,由于set容器是会自己排序的,而我的结构体又没有写<的操作符重载...原创 2020-03-31 11:46:06 · 4932 阅读 · 5 评论 -
QT MSVC中文编译出错error: C2001: 常量中有换行符
QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符,但用MinGW就不会。需在后面加个正常的字符才能正常编译,但出现乱码了。其编码如下图,明显的看着编码不对。 如果想都编译成功,那就需要在设置里把“文件编码”的UTF-8 BOM改成“如果编码是UTF-8则添加”。如下图 但这样做直接编译出来的都是乱码。编码如下图 需用QStrin...原创 2018-08-02 11:42:01 · 14452 阅读 · 19 评论