- 博客(43)
- 收藏
- 关注
原创 malloc(0)的运行实验
场景:碰到这样的题目,问 malloc(0) 有什么后果和输出,这里来VS上进行运行试验问题描述:我们在堆上申请一块内存,若申请size为0,有很多文章已经进行了描述:参考1,参考2,参考3,参考4这里使用VS2017运行效果与参考文章不太一致,过程如下:char *ptr,*next;char *tmp1, *tmp2, *tmp3;//申请多个size为0的内存tmp1 = (char*)malloc(0 * sizeof(char));tmp2 = (char*)mall
2020-09-24 20:50:29
297
原创 qemu: could not load PC BIOS ‘bios-256k.bin
在centos下首先 yum installqemu.x86_64,不过此时QEMU仍然不可用,会提示“qemu: could not load PC BIOS 'bios-256k.bin'”还需要再yum installqemu-kvm.x86_64参考:这篇文章
2020-09-03 20:01:27
3320
原创 计算机网络课程笔记
学习MOOC华南理工计算机网络课程笔记第1章 概述1.1 为什么要学习计算机网络1.2 互联网发展史1.3 常用的基本概念1.4 参考模型1.5 参考模型相关概念1.6 本课程的组织第2章 物理层2.1 物理层概述2.2 有导向的传输介质2.3 复用技术2.4 调制技术2.5 公共交换电话网络 PSTN2.6物理层设备第3章 数据链路层...
2020-05-08 16:07:18
2459
1
原创 阿里云实习生部门笔试2020.04
月初申请阿里实习生,公司很快安排了上机笔试,是两道算法题大题,很难,没刷过题导致题目也看不怎么懂。笔试完第二天阿里云打电话安排另一场笔试,题目如下://评测题目: 无第一题: char str[] = “http://www.ibegroup.com/” char *p = str ; int n = 10; 请计算 sizeof (str ) = siz...
2020-05-02 11:50:01
811
原创 three.js导入模型无阴影
three.js导入obj模型以及材质文件后,根据Three.js - 使用阴影效果 shadowMap 和 设置阴影分辨率,添加:1. 渲染器启用阴影renderer.shadowMap.enabled=true;2. 灯光产生阴影light.castShadow=true;3. 物体遮挡阴影obj.castShadow=true;4.地面显示阴影obj.re...
2020-04-09 22:41:42
2721
3
原创 使用three.js加载obj+mtl模型
已经有比较好的博客介绍如何加载模型:使用three.js加载obj+mtl模型完整案例。有一点小问题,会导致模型加载不成功,需要修改两处地方。1 将 Detector.js 替换为WebGL.js根据Three.js中Detector.js替换成了WebGL.js,新下载的 three.js 的js文件夹里为 WebGL.js,修改如下:<script src="../j...
2020-03-29 20:02:58
2026
4
原创 改变TB-RK3399pro(Fedora28)引脚电平
TB-RK3399pro开发板上引出了通用IO口,位于40pin针脚中间,如图所示:用表笔测量GPIO0_A5、GPIO0_A6上面的电压,均为低电平,现将GPIO0_A6设置为高电平输出。查询参考寄存器手册Address Maping部分:GPIO0基地址为0xFF720000 DDR(方向寄存器)偏移地址0x0004, 所以寄存器地址为0xFF720004 DR(设置高低...
2019-12-07 17:29:04
579
原创 Qt绘图QGraphicsView、QGraphicsScene、QGraphicsItem简述
Qt绘图中,QGraphicsView、QGraphicsScene、QGraphicsItem三者之间密不可分,以下简单介绍三者之间关系。三者之间关系:如同绘画的过程,Qt绘图中,QGraphicsView的作用相当于画板,QGraphicsScene等效于画布,QGraphicsItem为画布上的画。拿出画板,订上一张画布:UI中添加了一个QGraphicsView后,需要往其中添...
2019-10-28 17:57:35
4070
2
原创 this file requires compiler and library support for the iso c 2011 standard 解决方法
使用QT进行构建,好好的程序出现以下问题:this file requires compiler and library support for the iso c++ 2011 standarderror: #error "Qt requires C++11 support...发现是一个cpp文件的后缀不小心被我改成了.CPP将大写换为小写就好了。并不需要配置其他内容。...
2019-10-24 13:22:26
668
原创 fedora系统更新时间
先进行安装:yum install ntpdate修改时区为上海: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime之后运行两遍:ntpdate asia.pool.ntp.org使用crontab计划任务定时更新网络时间:修改文件:# vi /etc/crontab在最后一行加上:(注意之间的空格)* ...
2019-05-29 14:05:07
636
原创 cvui.h 使用总结
很多情况下个人更多用QT搭配opencv进行一系列开发,QT可以迅速开发出合乎要求的界面。但是实际上,试验过程中并不需要一个美观且功能齐全的界面,使用opencv进行图像处理,可能反反复复使用的是按键、勾选按钮、图片显示、参数修改或者显示等功能,这些小功能似乎没必要动用QT的牛刀。有一个非常小巧的GUI库,CVUI。它是建立在OpenCV绘图基元之上的,除OpenCV之外,没有任何依赖性。而使...
2019-05-28 17:18:53
4442
1
原创 opencv图像加文字与运行时间
使用opencv处理图像,有时需要实时处理,并将处理结果或者相关信息直接显示在图像上。例如显示帧率,物体标签等。加文字:putText()函数此函数在opencv的 imgproc 模块中的 Drawing Functions 中,同样一同存在的有:画线函数(line)、画矩形框函数(rectangle)、画圆函数(circle)等。//函数各项参数如下void cv::putT...
2019-05-27 16:23:35
1485
原创 QT使用std::thread::get_id()显示线程ID
C++11中的多线程特性在跨平台上有很大的优势,QT当然也可以使用QThread等方法。这里是在QT中得到线程 id 的方法:#include <thread>#include <QDebug>#include <QString> //以下代码片段得到当前线程的id,并通过QT输出窗口输出调试信息 std::thread::id...
2019-05-27 13:44:45
5362
翻译 linux下库函数实现
前言C语言是一种结构化程序设计语言,当项目达到一定规模后,采用模块化设计是种必然的选择。所谓模块化设计是指对项目按照“自顶向下”的分析,将项目划分为一个个子系统,每个子系统再划分为多个模块,直到每一模块足够小并且功能单一为止。再按照“自底向上”的方式进行程序设计,将模块用C语言函数来实现,形成逐层调用关系,最终构成整个项目。模块化设计可以降低程序复杂度,使程序设计、调试和维护等操作简单化...
2019-05-10 16:04:52
734
原创 CMakeLists.txt 的阅读
前言CMake允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。CMake 是一个跨平台的自动化建构系统,它使用一个...
2019-05-10 11:24:42
409
原创 gdb调试器的使用
1 重要准备要使用gdb来调试c/c++程序,需要在编译时加上-g选项,生成可供调试的文件,例如:g++ test.cpp -g -o test2 启动gdb在命令行下输入gdb即可启动,或者输入 gdb [调试文件] ,例如:gdb test3 关闭gdb在gdb模式下输入命令 q 或者 quit 即可退出gdb4 gdb常用命令file:用于加载被调试程序,一般在调...
2019-05-06 13:04:01
125
原创 gcc与g++的使用
1 gcc编译器的基本语法格式如下:gcc 【选项】 准备编译的文件 【选项】 【目标文件】例如:编译名为 test.c 的c程序 : gcc test.c -o test2 若使用gcc编译器编译c++程序,与编译c程序略有不同:若cpp文件中未使用任何c++标准库的内容,即还是c语言,则无需特殊处理;若cpp文件使用了如std命名空间等c++内容,则在gcc...
2019-05-06 11:16:36
765
原创 vi / vim编辑器的使用
Linux下文本编辑器有很多,图形模式下有 gedit ,文本模式下有 vi 或 vim 。vi 编辑器有三种工作模式:命令、插入、末行。命令:控制光标,删除,复制等;可以通过 i,a,o等键进入插入模式,可以通过 : 进入末行模式插入:文本输入;通过ESC键进入命令模式末行:保存,退出,查找等;回车后自动进入命令模式三种模式之间的关系及切换方法如下图:可见插入模式不能...
2019-05-05 16:17:42
449
原创 TB-RK3399pro(Fedora28)图形界面与字符界面的切换
TB-RK3399pro(Fedora28)使用的是LXDE图形界面,使用时默认打开7个屏幕,分别是tty1到tty6,加上一个没名字的tty7。LXDE为tty1号屏幕,若要切换至字符界面,使用快捷键:Ctrl+Alt+F2 ,F2也可以为F3~6。暂时不清楚为什么tty7与其他界面不同。字符界面切换为图形界面,使用Ctrl+Alt+F1切换。使用终端也可以完成切换:init 3 ,...
2019-05-05 10:38:49
664
原创 TB-RK3399pro(Fedora28)安装opencv4.1
网上有许多教程介绍如何把opencv安装到ARM板中,比如2440板或者4412板等。但通常opencv版本并不高,这篇文章介绍将当前最新的opencv4.1安装到瑞芯微最新产品RK3399rpro上,最终可以调用摄像头进行YOLO模型的识别。搭配的绘图工具是GTK,并不是QT。操作系统是fedora28,红帽家族,不是ubuntu。1. opencv官网下载最新的源码,点击“source...
2019-05-01 21:16:34
1529
1
原创 TB-RK3399pro成砖后Typec无法连接电脑的方法
TB-RK3399pro:即为toybrick的3399pro板成砖原因:强行刷友善之臂的3399固件,且失败解决方法:1 断开所有连接2 用Typec连接电脑3 按下板子正面的 maskrom 按键,在散热片固定钉旁的一个小按键4 连接电源线,保持maskrom按键按下状态5 观察电脑的Androidtool 软件是否显示为maskrom设备,是的话松开按键成功连...
2019-04-19 10:56:33
2272
2
原创 C语言中的储存类型
C语言包含4种储存类型,见下表:特征 自动储存类型 寄存器储存类型 静态储存类型 外部储存类型 关键字 auto register static extern 储存于 内存 CPU寄存器 内存 内存 默认初始值 垃圾值 垃圾值 0或空白符 0或空白符 作用域 局限于块 局...
2019-04-02 09:41:26
1162
原创 C语言中的重载
有人说C语言这种不咋高级的语言怎么会有重载,你就写个标题使劲忽悠吧。见下:printf("%d", x); //2个参数printf("%d, %d", x, y); //3个参数在C语言部分内置函数可以有函数重载,例如 printf 函数,但是自定义函数和其他地方都不可以重载。...
2019-04-02 09:14:09
1948
3
原创 数组下标的别致用法
数组常识(common sense)当一个数组被创建,数组下标都是从0开始计数的。例如,创建了一个名为 arr 的数组,可以通过 arr[i] 来读取数据。arr 为数组名,i 为数组下标。arr[i] 在编译器内部会被读取转换为另外一种形式:(arr + i)当 i 为0时,(arr + i)= arr(当前数组名)。因此数组名为一个基址,用于指示数组的第一个元素从哪里开始读取...
2019-04-01 09:41:32
893
原创 getchar(),getche(),getch()
都是从键盘接收输入,为啥只知道 getchar() 呢,其实用的时候有更好的选择。三个函数都是从键盘接收一个字符,根据下表不同的小区别,使用时选择不同的函数。函数名 头文件 是否需要输入Enter 是否屏幕回显 getchar <stdio.h> 是 是 getche <conio.h> 否 是 ge...
2019-04-01 09:08:14
270
原创 C2143 C4430 C2238错误
原因是头文件互相包含了。。错误1 error C2143:语法错误:缺少“;”(在“<”的前面)错误2 error C2238:意外的标记位于“;”之前错误3 error C4430:缺少类型说明符 - 假定为int。注意:C++不支持默认int...
2019-03-27 22:26:50
1487
1
原创 QT中connect的两种简单用法
第一种:使用宏这种方法较为常见:connect(sender, SIGNAL(valueChanged(QString, QString)), receiver, SLOT(updateValue(QString)));即使用SIGNAL() 和 SLOT()将信号与槽进行声明;例子: QLabel *label = new QLabel; QScro...
2019-03-27 11:16:52
4428
原创 使用QGraphicsScene的clear方法报错
对一个GraphicsView控件进行自定义提升,添加了滚轮缩放、右键菜单等功能。右键菜单有一个清空图像的功能,原本使用场景的clear方法,但是报错:debug assertion failed。改为使用removeItems方法一个个去除场景中的items:void My_GraphicsView::clearAll(bool){ foreach(QGraphicsIt...
2019-03-20 10:54:24
2447
原创 debug assertion failed 的一种解决方法
在使用C++编写程序时,使用到了如同以下的程序:scene.addItem(&originalPixmap);出现debug assertion failed错误:查找原因,发现代码并没有问题,罪魁祸首是:变量 scene 的声明在originalPixmap 后,将两者顺序调整后问题即可解决。...
2019-03-18 21:18:16
3659
1
原创 QT创建和使用插件——以OpenCV中值滤波为例
参考书目:《OpenCV 3和Qt5计算机视觉应用开发》——[伊朗]阿敏·艾哈迈迪·泰兹坎迪首先,需要定义一组接口,以实现应用程序与插件之间的对话。在C++中,与接口等价的是具有纯虚函数的类。接口基本上是一个啥也不做的类,但在这里它列出了应用程序所需要的所有插件的草图。打开QT Creator ,新建C++项目,选择“C++ Header File"。在新建出来的H文件里添加需要的头...
2019-03-04 15:55:47
1048
2
原创 Qt出现“常量有换行符”错误
Qt出现“常量有换行符”错误对中文字符串进行如下处理:将"卧槽!牛逼!"直接替换为:QString::fromLocal8Bit(“卧槽!牛逼!”)若还是无法解除错误警报,试试点击“构建”、“清理项目”、“重新构建”,就可以了。我是QT5.11,这样问题就解决了。不知道为什么,很多情况下经常需要清理项目再重新构建,不然警报无法解除。难道是用的Desktop MSVC20...
2019-01-18 14:07:49
337
原创 基于OpenCVSharp的图像处理软件
目录1 任务与目的2 方案总体设计3 C#界面设计4 OpenCVSharp功能实现5 打包与运行6 总结1 任务与目的本次任务是设计一个能够实现OpenCV部分功能的图像处理软件。目的在于方便图像处理人员在具体编写OpenCV程序前,提前能够对图像进行简单处理,进而帮助开发人员分析该如何对图像进行处理。使用C#对界面和逻辑进行开发。界面开发的工具有很多,例如使...
2019-01-08 19:32:47
29159
80
原创 sa蛋OpenCV参数说明
这里存放了sa蛋OpenCV的初始化参数及其简单说明~public void myOPENCV_value_int() { myOPENCV_value[(int)myOPENCV.cvt_color, 0] = 11;//颜色空间转换 参数一 转换标识符 myOPENCV_value[(int)myOPENCV.cvt_c...
2018-12-20 10:17:14
2650
原创 OpenCVSharp安装后运行出错
按照下面这个博客的第二个方法安装后,程序在Mat source = new Mat(@"1.bmp", ImreadModes.Color);提示出错:“OpenCvSharp.NativeMethods”的类型初始值设定项引发异常。https://blog.csdn.net/jameshater/article/details/79642384由于方法一连不上网,因此一开始使用第二个方...
2018-11-21 22:15:57
1317
原创 阅读《C程序员——从校园到职场》笔记
*——最近和小伙伴交流,发觉自己的C语言在很多方面需要进一步提升或加强,于是借阅了CSDN大佬编的这么一本书,希望有所改变和提升。*第一章 概述本章主要内容:介绍C语言历史与现况以及开发工具。要点一:C语言之父——Dennis Ritchie(丹尼斯·里奇);第二章 学校到职场本章主要内容:破除“学生”观念,介绍“职场”思维。要点一: 四个错误观念:1.我的C语言学得很好;2.编...
2018-10-27 23:06:37
430
原创 计算方法——C语言实现——迭代法求解线性方程组
最近在上计算方法这门课,要求是用MATLAB做练习题,但是我觉得C语言也很棒棒啊~题目:和直接法不同,迭代法是一种逐次逼近的方法,将复杂问题简单化,求比较大的方程组时一般都不会用直接法。迭代法有好几种,这里使用了Jacobi迭代与Gausse_Seidel迭代法。使用VS2017,代码如下://使用Jacobi迭代法与Gausse_Seidel迭代法计算线性方程组#include "s...
2018-10-11 18:41:40
17127
1
原创 计算方法——C语言实现——LU分解法求解非线性方程
最近在上计算方法这门课,要求是用MATLAB做练习题,但是我觉得C语言也很棒棒啊~题目:高斯消元法实际上可以看成是将系数矩阵A分解为一个单位上三角矩阵L和一个下三角矩阵U的乘积,当高斯消元无法使用的时候当然LU分解也不能用,只要A各阶顺序主子式不为0就行了。使用VS2017,代码如下://使用LU分解法求解线性方程组#include "stdafx.h"#include<std...
2018-10-11 18:28:20
1966
1
原创 计算方法——C语言实现——追赶法求解非线性方程
最近在上计算方法这门课,要求是用MATLAB做练习题,但是我觉得C语言也很棒棒啊~题目:一般三对角线性方程组的求解用这个方法,三对角线性方程组也称为带状矩阵,这方法基础上还是LU分解法,只是比LU分解法计算方法上简单一些。使用VS2017,代码如下://使用追赶法求解线性方程组#include "stdafx.h"#include<stdlib.h>#include "...
2018-10-11 18:12:24
4561
2
原创 计算方法——C语言实现——全主元高斯消元法求解非线性方程
最近在上计算方法这门课,要求是用MATLAB做练习题,但是我觉得C语言也很棒棒啊~题目:高斯消元法是线性方程组的直接解法,可能会造成很大的失真,尤其是高斯顺序消元法,对方法进行改进,使每次都选取绝对值最大的元素为主元,使其为乘数的分母,控制舍入误差的扩大,失真较小。代码都是上上个星期写的,暂时就不注释了……使用VS2017,代码如下://使用全主元高斯消元法求解线性方程组#includ...
2018-10-11 17:51:11
3020
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人