标签 ptr 下的文章

  • 📂面试问题 : c++中都有什么样的内存问题,怎么解决教程

    整理自 陈硕的多线程网络编程面试问题 : c++中都有什么样的内存问题,怎么解决缓冲区溢出,访问了错误空间使用容器,vector或者array,直接成员函数获取长度,不要自己裸指针,用基本数组悬空指针 野指针使用shared\_ptr,保证只要用到的地方就是可用的重复释放使用shared\_ptr,让shared\_ptr自动帮助析构内存泄漏使用shared\_ptr不配对的new[] de...

  • 📂linux kernel中cache代码解读教程

    1、 在kernel中调用\_\_dma\_flush\_range,底层是如何操作的呢? __dma_flush_range(ptr, ptr + size); /* * __dma_flush_range(start, end) * - start - ...

  • 📂Linux 库打桩机制教程

    库打桩机制Linux 链接器截获对共享库函数调用,转而执行自己的代码。创建一个包装函数,对库函数进行包装(代理模式)。利用打桩机制欺骗系统去调用包装函数。编译时打桩// malloc.c // 对 malloc、free 的包装函数 #ifdef COMPILETIME #include <stdio.h> #include <malloc.h> void *my...

  • 📂珍贵经验!Spring Boot 内存又泄露,排查太难了!教程

    背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+AlwaysPr...

  • 📂使用 openssl 计算 base64(防止内存泄露)教程

    #include "openssl/bio.h" #include "openssl/evp.h" #include "openssl/buffer.h" int base64(const unsigned char *src, int src_len, unsigned char *dst, int *dst_len) { ...

  • 📂12 动态内存教程

    目录- 1. 动态内存与智能指针1.1 shared类1.2 直接管理内存1.3 shared\_ptr和new结合使用1.4 智能指针和异常1.5 unique\_ptr1.6 weak\_ptr2. 动态数组2.1 new和数组2.2 allocator类3. 使用标准库:文本查询程序设计3.1 文本查询程序设计3.2 文本查询程序类的设计动态内存与智能指针1.1 shared类1.2 ...

  • 📂动态内存教程

    动态内存函数介绍1、mallocC语言提供了一个动态内存开辟的函数:void* malloc(size\_t size):这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟成功,则返回一个指向开辟好空间的指针。 如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使...

  • 📂share_ptr内存泄漏教程

    下面是shared\_ptr三种常见的定义方式:shared\_ptr sp;//声明一个指向int类型的智能指针sp.reset(new int(42)); auto sp1 = make_shared<string>("hello");//sp1是一个智能指针 shared_ptr sp2(new int(42));而make\_shared方式是推荐的一...

  • 📂模拟Linux下shell功能,实现简易的minishell教程

    什么是shellShell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它接收用户命令,然后调用相应的应用程序。编写思路捕捉键盘输入的信息。解析输入信息:将键盘的输入信息解析成 命令名称+运行参数创建子进程:让子进程运行对应名称的程序。(程序替换)等待子进程退出。代码实现#include <stdio.h> #include <unistd.h&...

  • 📂Linux PCI和PCIe总线教程

    1 PCIe中断 - PCI/PCIe设备中断都是level触发,并且请求信号为低电平有效 - PCI总线一般只有INTA#到INTD#的4个中断引脚,所以PCI多功能设备的func一般不会超过4个,但是共享中断除外 2 IOMMU和SMMU 2.1 x86 IOMMU (1)Native时将PCIe总线地址(ARM叫IPA地址)转换成存储器物理地址 (2)Hypervis...

  • 📂《C++学习笔记》动态内存教程

    动态内存和智能指针内存和智能指针简介静态内存用于保存局部static对象、类中static数据成员、定义在函数外的变量栈内存用于保存函数内部的非static对象堆(自由空间)用于存储动态分配的对象,要求显式销毁不用的对象头文件memory中提供shared_ptr智能指针以允许多个指针指向同一个对象,提供unique_ptr智能指针以独占所指对象,智能指针也是模板头文件memory中还提供伴...

  • 📂Shellcode编写技术和原理教程

    1.shellcode原理Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务的。 Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地。网络上数以万计带着漏洞顽强运行着的服务器给hacker和Vxer丰...

  • 📂std vector如何避免频繁内存创建教程

    1. std vector中添加元素In C++ vectors are dynamic arrays. Unlike arrays, they don’t have a fixed size. They can grow or shrink as required. Vectors are assigned memory in blocks of contiguous locations....

  • 📂智能指针里的动态内存管理教程

    什么是智能指针?为什么要用智能指针?如何打破循环引用的问题?对于资源管理有什么作用?看到这些问题,心里就发毛。什么是智能指针啊?为什么要用智能指针啊?循环引用又是什么鬼?实现?我❌...首先我们来看一下第一个问题,什么是智能指针?常见的智能指针有几种,一种是共享指针shared\_ptr,一种是独享指针unique\_ptr,一种是弱指针weak\_ptr,一种是很久没用过的auto\_pt...

  • 📂C语言--关于动态内存管理--malloc--free--realloc--calloc--理解教程

    动态内存管理关于动态内存管理,重点就是!!动态!!,这两个字,我们在之前学习了简单的内存开辟int arr[10]={0}; //开辟了40个静态字节 char A='d'; //开辟了一个字节 这都是我们之前所用到的,也是最简单的.但是它所开辟的字节数是固定的,不能随着内部数据增加,而是这个内存变大,在会解决一些比较大的项目的时候就出先了比较大...

  • 📂一次路径引发的iptables事故教程

    背景:原来只是一个谎言感悟:可恶的 /(根路径符号) ,浪费我三天时间!特点:菜鸟级的时间拉锯战引言:最近在嵌入式设备上做一个基于Linux的网关防火墙的项目,自然,iptables是必不可少的。但是,在最近的测试中因为粗心大意造成的一处错误却带来了不小的麻烦,详细说来就是。。。时间:9 27关键词:发现问题因为之前一直没有测试过iptables的功能,只是交叉编译通过并能在板子上跑起来,输...

  • 📂Linux中的list_entry和container_of(转载)教程

    转自http://hi.baidu.com/mynana/blog/item/1da1ba99239ceb006f068c48.htmllist\_entry宏是用来根据list\_head指针查找链表所嵌入的结构体的地址,具体实现是依赖宏container\_of:\#define list\_entry(ptr, type, member) container\_of(ptr, type...

  • 📂进程锁 读写文件的小例子 C++代码教程

    代码#include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <cassert> #include <pthread.h> #include <cstdio> #include &...

  • 📂c的函数指针与内存教程

    动态分配内存要分配10个int,一个int占几位,10个int一共多少位就拿出多少内存#define PLAYER_COUNT 10 int *players = malloc(sizeof(int)*PLAYER_COUNT); //print 使用 for(int i=0;i<PLAYER_COUNT;i++){ players[i] = i; } PRINT_INT_...

  • 📂C++之动态内存与智能指针以及底层实现原理教程

    文章目录1.动态内存2.shared\_ptr类1.动态内存new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存动态内存容易出现的问题:如果忘记释放内存,就会产生内存泄漏;如果在尚有指针引用内存的情况下释放了该内存,就会产生引用非法内存的指针2.shared\_ptr类shared\...

  • 📂shellcode加载器编写教程

    Python3 shellcode通用加载器#!/usr/bin/python3 import ctypes <br></br>#shellcode 放这个位置 c = b"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31" shellcode = bytearray(c) ptr = ctypes.windll...

  • 📂Linux用户态线程pthread简单应用教程

    1、pthread\_exit函数<pre class="best-text mb-10" name="code">void <a class="baidu-highlight" href="https://www.baidu.com/s?wd=pthread_exit&tn=44039180_c...

  • 📂linux多线程使用和注意教程

    目录 1 线程编译 2 线程和进程的区别 3 有关线程操作的函数 4 线程互斥和同步(也叫线程安全) 4.1 互斥 4.2 信号量 4.3 条件变量 5 智能指针与多线程 6 线程池 7 多线程的实现 7.1 c语言实现 7.2 c++实现 7.3 java 实现 8 死锁的调试 正文 1 线程编译 gcc -o pthread -lpthread pthre...

  • 📂strstr ShellCode实现教程

    ShellCode 如下目录strstr ShellCode实现1.函数原型2.ShellCode提取.3.汇编代码如下strstr ShellCode实现1.函数原型 char* Mystrstr(const char* SrcStrPtr, const char* SubStrPtr) { int nCount; if (*SubStrPtr) /...

  • 📂动态内存与智能指针教程

    @目录一、简介1.1 程序使用动态内的原因:二、shared\_ ptr 类2.1 make\_ shared 函数2.2 shared\_ptr 的拷贝和赋值2.3 shared\_ ptr 和 new 结合使用‘2.4 不要混合使用普通指针和智能指针......2.5 不要使用get初始化另一个智能指针或为智能指针赋值2.6 reset()操作2.7 使用我们自己的释放操作三、uniqu...

  • 📂动态内存 与 智能指针教程

    参考https://www.cnblogs.com/lanxuezaipiao/p/4132096.html#top 与c++ primer第五版(p432)1.动态内存与智能指针智能指针包含在头文件中,shared\_ptr、unique\_ptr、weak\_ptr。智能指针与普通指针区别在于,它负责自动释放所指向的对象。shared\_ptr 允许多个指针指向同一个对象,unique\...

  • 📂C++11:21通过智能指针管理第三方库分配的内存教程

    21、通过智能指针管理第三方库分配的内存0、课前秀第三方库分配的内存一般需要通过第三方库提供的释放接口才能释放,由于第三方库返回的指针一般都是原始指针,在用完之后没有调用第三方库的释放接口,就很容易造成内存泄露。1、示例第三方库的释放(可能会存放跟new,delete一样,忘记释放或走不到分支)void* p = GetHandle()->Create(); //do somethin...

  • 📂动态内存管理教程

    指针常与堆(heap)空间有关。在堆这个内存区域中,允许程序在运行时以指针形式申请一部分存储单元(比较:其他的存储空间都是在编译时完成)。语言申请释放cmalloc();free();char* S = (char*)malloc(1); free(s); int*p= (int*) malloc(4*10); free(p);c++ newnew <类型名> (初值) ;...

  • 📂C++primer-学习心得-第12章-动态内存教程

    文章目录C++primer-学习心得-第12章-动态内存12.1 动态内存与智能指针1.shared\_ptr类练习12.22.直接管理内存练习12.6练习12.73.shared\_ptr和new结合使用4. 智能指针和异常5. unique\_ptr6.weak\_ptr练习12.2012.2 动态数组1.new和数组练习12.23练习12.242. allocator类12.3使用标准...

  • 📂C++(2)----智能指针与动态内存教程

    C++ 11提供的智能指针有:shared\_ptr、unique\_ptr、weak\_ptr。在 头文件 memory 中。一、new delete 直接管理内存1、初始化string * ps = new string // 初始换为一个空string int * pi = new int ;//pi 指向一个未初始化的int,*pi 未定义 int * pi = new int(...