- 博客(27)
- 资源 (23)
- 收藏
- 关注
原创 C语言攻破面试指针运算及数组
有c语言基础就从老外的第3节开始看。指针指针强类型指针是强类型的,也就是说,需要知道这个指针是存的什么类型的地址,虽然就是一个8位的数来表示整数。但是解引用的时候,需要知道要几个字节算一个数据。同时,还和大端模式,小端模式有关系。指针运算指针运算,p++ p+5等表达式,到底加了几个字节呢?p++: p的地址增加了 1 * sizeof(*p)个字节p + 5: p的地址增加了5 * sizeof(*p)个字节void*泛型指针,万能指针。int* p;char* q
2021-08-30 16:26:09 141
原创 操作系统(八)死锁
文章目录1 什么是死锁2 资源分配图3 死锁处理方法4 死锁的4个必要条件死锁防止prevent避免死锁tutorial1 什么是死锁进程之间互相等待资源的释放。2 资源分配图3 死锁处理方法4 死锁的4个必要条件死锁防止prevent在代码运行前,防止产生死锁的四个必要条件。分别针对4个条件论述:避免死锁在代码运行时,检测是否存在死锁等待的环,如果存在则进行处理。tutorial...
2021-08-29 17:52:51 140
原创 SOFT3410-系统编程中的C语言
文章目录Core Dump/Segmentation Fault1 指针1.1 悬浮指针Dangling pointers1.2 野指针wild pointer1.3 指针和数组1.3.1 指针和算法内存2.1 函数调用栈2.2 堆2.2.1 void *malloc(size_t size);2.2.2 void *calloc(size_t num, size_t size);2.2.3 void free(void *ptr);2.2.4 内存泄露2.2.5 void *realloc(void *p
2021-08-28 12:10:55 300
原创 c/c++中的Core Dump/Segmentation Fault
错误发生的原因是:想要读写到“不属于你的内存”。主要有六种出错的方式:修改某字符串字面量,而不是某字符串变量,例如"adfsd"(试图写只读区域)获取已经释放了的内存(编译器不允许)数组越界(极其常见)scanf()错误使用(将输入给到了一个无效的内存)栈溢出(递归太多,函数局部数组定义太长等)对一个没有初始化的指针进行解引用操作。(int * p; int c = *p;)...
2021-08-27 20:41:49 278
原创 SOFT3410-软件开发中的并发性
Some Linux concepts you will need• In addition to ssh, scp, editing (such as vim, nano), compiling,moving files, /tmp file system……• Understanding PATH• Setting environment variables in general, e.g.,LD_LIBRARY_PATH• Writing shell scripts• Shell st.
2021-08-27 17:50:58 287
原创 c++智能指针
raw pointer原指针原指针就是正常的指针:type * pointer_name = & variable_name;智能指针一种包括堆区原指针的对象,用来更好管理对象的生命周期。C++11最佳实践Also note the use of ‘nullptr’ in C++ instead of NULL...
2021-08-20 16:25:04 116
原创 c++匿名lambda函数(c++11)
文章目录格式应用参考链接格式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-> return type { function body }各项具体含义如下capture list:捕获外部变量列表params list:形参列表mutable指示符:用来说用是否可以修改捕获的变量exception:异常设定return type:返回类型function body:函数体应用该代码测试按照元音
2021-08-19 21:30:38 154
原创 操作系统(七)合作线程同步----未完待续,有点难理解。所以要结合代码继续理解。
文章目录0 前言1 背景multiprogrammingrace condition竞争条件同步The critical section problem2 概念3 tutorial4 lab0 前言协同的进程可以影响或被系统中执行的其他进程所影响。协作进程可以直接共享逻辑地址空间(即代码和数据),也可以只允许通过文件或消息共享数据。前一种情况是通过使用线程实现的,本系列文章之前讨论过。但是,对共享数据的并发访问可能会导致数据不一致。在本章中,我们将讨论各种机制,以确保共享逻辑地址空间的协作进程有序执行
2021-08-19 12:48:59 185
原创 51nod算法训练
文章目录1096 距离之和最小1116 K进制下的大数1096 距离之和最小#include<bits/stdc++.h>using namespace std;long long v[10005];int main () { int n; cin >> n; for (int i = 1; i <= n; i++) cin >> v[i]; //sort(v + 1, v+n + 1);// 排序 1~n的位置 // 快速排序,归并排序。
2021-08-18 20:18:50 153
原创 c++ - new和delete
文章目录c++中的对象创建和释放c++中的对象c++的所有数据,包括基本变量如int,都是对象。而Java的基本数据类型不是对象。对象是和某类型有关的区域。有3种方法可以让c++中的对象具有超过了它的定义范围的生命周期。通过复制从函数中返回它(可能有限制)通过引用从函数中返回它(不好,见下面的幻灯片)将其作为堆资源从函数中返回(今天的课)也就是new和delete创建和释放需要在堆中创建,然后手动释放。使用new创建,会调用该对象的构造函数。所以用法类似使用类创建对象。加一个
2021-08-16 18:27:47 127
原创 c++左值和右值
文章目录左值lvalue右值rvalue左值右值的转换左值引用右值引用原文地址左值lvalue有具体地址,可以通过地址访问的对象。(以后可能都不应该说变量了。应该c++中的所有变量都是对象,连int都有构造函数的)原本所有的左值都可以被赋值(=左边),自从有了const,出现了不可修改的左值。右值rvalue不是左值的对象都是右值。可以认为右值不在内存中具有地址,暂时储存在寄存器中。左值右值的转换左值可以转右值:int a = 1; // a is an lvalueint b
2021-08-16 17:31:46 822
原创 操作系统(六)实验
任务简介有5个涉及到多线程的问题,选其2进行解决。选择用 C 或 C++ 来实现。但是,低级操作系统调用必须用普通的C语言。学习成果多线程的debug同步,线程调度,抢占非抢占式调度算法注意事项不允许使用占用cpu的等待操作。应该使用condition variable,当满足某种操作的时候再去睡眠或者苏醒和其他线程通信。在操作添加元素到数组,加锁等操作时,对每一步都输出当前的操作信息。程序干了什么尽量线程间分享尽量少的内容。避免出现死锁或者竞争条件随机数的随机种子,保证是固定的生
2021-08-16 08:36:39 274
原创 操作系统(五)CPU进程和线程调度
文章目录简介概念算法tutoriallabpthread数量和任务分析exit(EXIT_SUCCESS);和pthread_exit(NULL)open mp简介在Linux上,进程和线程是一个概念。进程就是内核级的线程。进程调度和线程调度经常互换使用概念算法tutoriallabpthread数量和任务分析运行代码的命令:$ gcc -o pt thread-1.c -pthread -Wallc代码:#include <pthread.h>#include &l
2021-08-15 23:52:08 1730 1
原创 操作系统(四)线程
线程是cpu执行的最小单位,包括线程ID,程序计数器,寄存器集和栈。和其他同属于一个进程的其他线程共享操作系统资源:代码区,数据区打开文件和信号。学习之后的目的 :描述操作系统如何管理计算资源(如CPU和内存),描述现代操作系统设计中使用的基本原则。解释现代操作系统的目标和功能,解释内存层次结构和性价比,解释现代操作系统的操作、实现和性能,以及每种操作系统对于复杂用户应用程序的相对优点和适用性。比较和对比操作系统中用于抢占式和非抢占式任务调度的常用算法,如优先级、性能比较和公平共享方案。
2021-08-14 11:37:27 180
原创 c++运算符重载
文章目录友元函数重载:复合赋值Operator pairings自增自减运算符的重载c++20,spaceship operatorNote:Only create an overload if your type has a single, obviousmeaning to an operator友元函数一种全局函数,可以在类里声明,其他地方定义。或者在类里定义生命。但是这个友元函数,不是类的成员。用的时候直接用,但是可以接触类的所有权限的变量。对于,重载操作符来说,可以把一些重载体函数定义
2021-08-13 17:12:15 344 3
原创 c++异常
文章目录错误类型异常框架原则:捕获为常引用rethrow(嵌套异常)Exception safety levelsNo-throw guaranteeStrong exception safetyWeak exception safetyNo exception safetynoexcept specifier错误类型异常为了处理运行时错误和逻辑错误#include <exception> for std::exception object#include <stdexcept&
2021-08-13 16:47:27 506
原创 c++- Const class objects and member functions
文章目录常对象常函数最佳实践常对象首先可以定义一个类,在使用这个类的时候,创建一个常对象。那么这个对象的任何变量都不可以改变(在调用构造函数之后)。任何想要改变对象内属性的操作,都将引来编译错误。(包括直接改变public 变量以及调用改变变量的函数)。class Something{public: int m_value {}; Something(): m_value{0} { } void setValue(int value) { m_value = val
2021-08-13 12:53:28 126
原创 c++类构造函数
文章目录委托构造函数delegating constructorexplicit委托构造函数delegating constructor其实最好使用默认参数值default value,代替重载以及委托构造函数。委托构造函数可以减少代码量#include <string>class dummy {public:explicit dummy(int const& i) : s_{"Hello world"}, val_{i} {}explicit dummy() : du
2021-08-13 12:39:12 162
原创 c++类和结构体的区别
实际上c++的类,最后也是转为结构体实现的。主要区别:All members of a struct are public by defaultAll members of a class are private by default在什么情况下使用:We use structs only when we want a simple type with little or no methodsand direct access to the data members (as a matter o
2021-08-13 11:55:48 214
原创 c++ - This指针
一般情况下,不用This指针,而是加后缀suffix_来表示某变量是类内部变量.#include <iostream>class myclass {public:myclass(int i) {i_ = i;}int getval() {return i_;}private:int i_;};int main() {auto mc = myclass{1};std::cout << mc.getval() << "\n";}改变后:#
2021-08-13 11:52:27 74
原创 C++命名空间(namespace)
域scope一个变量的域就是程序的某个部分可以使用这个变量,离开这个区域,变量就消亡了。用{}来标识命名空间namespace命名空间就是有名字的域,里面按照正常情况定义了变量函数类等等。命名空间主要是为了防止命名冲突。嵌套命名空间nestedstd::string::nopsUnnamed namespacesc语言static的函数只能在本文件中使用,c++可以利用unnamed namespace实现该功能。namespace word_ladder { namespace
2021-08-13 11:48:19 196
原创 C++ - STL
文章目录c++style 迭代vectormap迭代器流迭代器(按空格读取文件的数据)容器分为顺序容器(没排序,按顺序放的)还有Ordered Containersc++style 迭代#include <array>#include <iostream>int main() {// C-style. Don't do this// int ages[3] = { 18, 19, 20 };// for (int i = 0; i < 3; ++i) {//
2021-08-12 16:15:52 258
原创 c++高级特性
和硬件相关的数据类型Remember that C++ runs directly on hardware, which means thevalue of some types may differ depending on the system.An example of a library you can include to display these are below:#include <iostream>#include <limits>int main()
2021-08-12 12:14:13 332
原创 51nod题解
文章目录1246 罐子和硬币1246 罐子和硬币#include<bits/stdc++.h>using namespace std;int main() { int n,k,c; while (cin >> n >> k >>c) { int x = k / n;// 每个罐子分至少x个! int a = k % n; // a个罐子会比其他罐子多1个, x + 1 int y = n - a;//y个罐子中有x个, //if
2021-08-11 21:14:26 165
原创 使用vs code远程ssh连接服务器或者virtual box虚拟机
在Windows上使用vs code开发。Windows上要安装有openssh,这个首先需要版本是1803,2018年3月以后的版本。自动安装了。具体看openssh下载remote ssh插件。之后输入主机域名等信息,密码,连接到远程服务器。vscode根据comp6771课程上的vs code设置环境。可以很方便地配置环境,很好用。运行老师写的一个脚本...
2021-08-07 21:42:38 2006
msvc2013 - OpenCV 3 Compile From Source and Qt.docx
2021-11-03
物料搬运机器人所有资料
2020-10-20
opencv编译的boostboostdesc_bgm.i
2020-09-29
good_adc - 副本.rar
2020-06-19
Virtual Serial Port Driver.rar
2020-06-14
Qt_CMake_Demo.zip
2020-05-29
智能仪器仪表分析——示波器的原理、使用方法及改进 - 副本.docx
2020-03-19
单片机电梯控制系统源码以及Proteus仿真设计报告等全套资料.rar
2020-03-19
STM32信号发生器.rar
2020-03-19
MSP430信号发生器.rar
2020-03-19
51信号发生器.rar
2020-03-19
基于MSP430实现的简易信号发生器报告.doc
2020-03-19
基于FPGA的红色标志物双目测距系统.doc
2019-12-01
MSP432小车iar代码.zip
2019-12-01
51单片机最小系统板PCB
2018-06-07
适用于2016年省赛电子设计竞赛自动循迹小车STM32F103所有程序
2018-06-03
适用于2016年电子设计竞赛江苏省以及辽宁省循迹小车题目的报告
2018-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人