内存
文章平均质量分 73
商汤科技
这个作者很懒,什么都没留下…
展开
-
一文读懂C++右值引用和std::move
作者:rickonji 冀铭哲C++11引入了右值引用,有一定的理解成本,工作中发现不少同事对右值引用理解不深,认为右值引用性能更高等等。本文从实用角度出发,用尽量通俗易懂的语言讲清左右值引用的原理,性能分析及其应用场景,帮助大家在日常编程中用好右值引用和std::move。1. 什么是左值、右值首先不考虑引用以减少干扰,可以从2个角度判断:左值可以取地址、位于等号左边;而右值没法取地址,位于等号右边。int a = 5;a可以通过 & 取地址,位于等号左边,所以a是左值。转载 2022-05-09 01:05:46 · 423 阅读 · 0 评论 -
C++动态绑定原理
C++ 多态一般我们问到c++的三大特性是什么?我们基本都知道封装,继承,多态,进一步问什么是多态?我们也能够回答说多态是通过虚函数实现的,是一种通过动态绑定实现对不同的类调用不同的函数接口,等等。。但是再继续问,什么是动态绑定,虚函数怎么实现的,等等,基本上不经常用c++的,就回答不出来了。继承和多态的作用:继承对程序编写的作用在于我们可以更容易的定义和其它类相似,但是不相同的新类而多态的作用在于我们可以通过动态绑定,在使用这些类进行编写程序时,可以一定程度上忽略其区别。虚函数:c转载 2021-07-22 00:55:51 · 1097 阅读 · 0 评论 -
嵌入式开发 - GDB调试Coredump问题
这里介绍如何用Coredump文件查找崩溃的位置,使用的工具是gdb。另外一种调试Coredump问题的方便的办法,是使用backtrace()等相关函数。1. 生成Debug版本软件包使用选项CMAKE_BUILD_TYPE编译工程生成程序和库。$ cmake -DCMAKE_BUILD_TYPE=Debug .用cpack工具生成软件包mypkg.tar.gz。$ cpack -c CPackConfig.cmake2. 设置Linux生成Corecore..转载 2021-06-03 23:20:32 · 514 阅读 · 0 评论 -
C++ delete 和 delete []的区别
转载自https://blog.csdn.net/cbNotes/article/details/389007991.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的代码:int *a = new int[10];delete a; //方式1delete [] a; //方式2肯定会有很多人说方式1肯定存在内存泄漏,是这样吗.转载 2021-05-23 23:25:08 · 113 阅读 · 0 评论 -
Linux 共享内存
共享内存上:https://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html共享内存下:https://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html原创 2021-02-28 11:29:47 · 131 阅读 · 0 评论 -
Linux 虚拟内存和物理内存的理解
关于Linux 虚拟内存和物理内存的理解。首先,让我们看下虚拟内存:第一层理解1.每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构2.一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录3.每个进程已经分配的内存空间,都...转载 2021-02-21 13:24:18 · 335 阅读 · 0 评论