
C/C++
详细讲解C/C++语言
黄其才_
正在学习......
展开
-
C/C++中动态申请二维数组
C/C++中动态申请二维数组C语言动态申请二维数组在C语言中,数组的大小必须在编译期就作为一个常数确定下来。如果提前不知道数组的大小,那必须使用malloc函数来进行动态申请。使用malloc/free函数来动态申请二维数组示例代码如下:#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int width = 3; int height = 3;原创 2021-10-10 20:04:33 · 4889 阅读 · 0 评论 -
Qt中TabWidget控件获取tab索引遇到的问题
Qt中TabWidget控件获取tab索引遇到的问题在Qt中常用的两个槽函数是:currentChanged(int index)和tabBarClicked(int index),这两个函数的意思是当当前tab改变时触发和当tab被点击时触发。但是在上面这两个槽函数中使用currentIndex()函数获取索引时会出现两种不同的结果,这个结果非常容易导致程序有bug,下面简单记录一下。在currentChanged(int index)函数中添加如下代码:int cnt = ui->ta原创 2021-10-05 21:57:14 · 6103 阅读 · 1 评论 -
两个浮点类型不可以直接判断相等以及解决方案
两个浮点类型不可以直接判断相等以及解决方案在计算机中,浮点数在内存的存储方式和int型不同,浮点数在存储的时候会有舍入误差,所以不能直接在程序中直接比较两个浮点数相等,如果需要判断相等,则需要使用精度这个方式。示例代码:#include <iostream>int main(int argc, char *argv[]){ double a = 1.0 - 0.2; // 0.8 double b = 0.7 + 0.1; // 0.8 if(a ==原创 2021-10-05 21:29:14 · 1266 阅读 · 0 评论 -
Ubuntu系统安装gsl库
Ubuntu系统安装gsl库环境:系统:ubuntu 18.04代码:gsl源码官网:gsl库官网:网址选择gsl-2.x.tar.gz 即可。1. 进入下载文件的文件夹,使用命令解压文件tar -zxvf gsl-2.x.tar.gz ,然后进入文件夹cd gsl-2.x2. 然后在终端中输入./configure --prefix=/usr 其中–prefix=后面跟的是安装路径,你也可以自己进行指定相应的路径。然后再进行make 命令,最后进行sudo make install 命令进原创 2021-03-22 16:04:03 · 3850 阅读 · 0 评论 -
解决使用Cmake编译ITK项目时出现By not providing “FindITK.cmake“问题
解决使用Cmake编译ITK项目时出现By not providing "FindITK.cmake"问题环境:系统:ubuntu 18.04代码:ITK 源码问题:原因:由于在Cmake3.1以上版本中不再提供。所以需要自己进行构建。链接解决方法:首先用终端打开ITK的目录,使用mkdir build新建一个build文件夹,cd build进入这个文件夹,使用Cmake编译整个ITK工程。在build文件夹中输入cmake .. 命令编译ITK工程,编译结束之后使用make构建ITK原创 2021-03-22 11:03:34 · 1831 阅读 · 0 评论 -
解决使用Cmake构建VTK工程出现错误问题
解决使用Cmake构建VTK工程出现:CMake Error at Rendering/OpenGL2/CMakeLists.txt:202 (message): X11_Xt_LIB could not be found. Required for VTK X lib.问题环境:系统:ubuntu 18.04代码:VTK 源码问题:原因:需要下载libxt-dev解决方法:在终端中输入命令sudo apt-get install libxt-dev 等待安装结束然后再使用Cm原创 2021-03-22 09:55:23 · 3191 阅读 · 0 评论 -
Ubuntu系统出现加载库错误问题
Ubuntu系统出现加载库错误问题:error while loading shared libraries: libvtkFiltersModeling-8.2.so.1: cannot open shared object file: No such file or directory 错误原因:这个是因为程序找不到库所在位置导致的。解决方法:方法一:(亲身尝试过可以)在终端中输入:locate lib_name(这里输入对应库的名称) 如出现下面的情况说明库已经存在。注:如果没有显原创 2021-01-22 15:48:33 · 1609 阅读 · 1 评论 -
C语言指针
C语言指针1、 指针概述:1、指针是一种数据类型,占用内存空间。用来保存内存地址。2、空指针:标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西,要使一个指针为NULL,可以给它赋值为一个零值,为了测试一个指针百年来那个是否为NULL,你可以将它与零值进行比较。对指针的引用操作可以获得它所指向的值,但从定义上看,NULL指针并未执行任何东西,因为对一个NULL指针隐引用...原创 2019-10-24 11:01:46 · 357 阅读 · 2 评论 -
Windows10安装MinGW-W64出现Cannot download repository.txt的一种解决方法
Windows10安装MinGW-W64出现Cannot download repository.txt的一种解决方法问题:去官网下载的MinGW-w64安装文件,然后双击安装时出现如下问题:尝试使用右键管理员权限打开无效之后。最后我使用的是离线安装的方法。解决方法:1、进行离线安装,直接下载文件的方法,我给出链接直接下载即可,64位机器点这里下载 32位机器自己在这个网站找一下即可。...原创 2020-04-29 19:42:13 · 4813 阅读 · 1 评论 -
一般链表实现集合运算(C语言)
一般链表实现集合运算(C语言)最近在学习数据结构,遇到以下问题:假设集合A = (c, b, e, g, f, d),B = (a, b, n, f),利用一般线性链表实现集合运算(A-B)∪(B-A)。分析:上面的问题只要是考察怎样应用链表,熟悉链表的操作,对链表有更加理性的认识。题目理解:题目的意思是将A和B中相同的元素删除,不同的元素插入的到A中,或者另外创建一个链表来存储。知道题目...原创 2019-11-03 20:38:57 · 1735 阅读 · 0 评论 -
链表的定义和C语言的实现
首先来谈谈链式存储结构:(1)特点:用一组任意的存储单元存储线性表中的数据元素;这组存储单元可以是连续的,也可以是不连续的;每个数据元素除了存储数据外,还要存储前驱、后继元素的地址。1、单链表:n个节点按链式存储结构存储,每一个结点只包含一个指针域。下面来分享一下链表基本功能和C语言中的实现。(1)线性表的单链表存储结构:typedef int DataType;typedef stru...原创 2019-03-30 23:00:53 · 7637 阅读 · 2 评论 -
C语言sizeof 详解
1、sizeof是C语言的一个操作符,类似于++、–等。sizeof能够告诉我们编译器为某一特定数据或者某一个类型的数据在内存中分配空间时分配的大小,大小以字节为单位。基本用法为:1、sizeof(变量);2、sizeof 变量;3、sizeof(类型);2、注意点:(1)sizeof返回的占用空间大小是为这个变量开辟的大小,而不只是他用到的空间。所以对结构体用的时候,大多情况下就得考...原创 2019-02-01 22:53:18 · 7065 阅读 · 1 评论