指针ptr

crash —— 如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的指针

需求 有时我们有这样的需求,比如我们知道了结构体task_struct,然后我们又想知道内核中有哪些数据结构中包含了task_struct,或者包含了指向task_struct的指针。 做法 用whatis -m可以做到: crash> whatis -m task_struct SIZE TYPE ......
数据结构 结构 数据 指针 指向

Go指针探秘:深入理解内存与安全性

Go指针为程序员提供了对内存的深入管理能力,同时确保了代码的安全性。本文深入探讨了Go指针的基础概念、操作、深层理解及其特性与限制。通过深入了解其设计哲学和应用,我们可以更好地利用Go的强大功能。 关注公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联 ......
指针 安全性 内存

C++指针和地址偏移在HotSpot VM中的应用

在前面我们介绍过new运算符,这个操作实际上上包含了如下3个步骤: 调用operator new的标准库函数。此函数会分配一块内存空间以便函存储相应类型的实例; 调用相应类的构造函数; 返回一个指向该对象的指针。 在第一步中,其实我们可以自己写个operator new函数对标准库函数进行重载,通常 ......
指针 HotSpot 地址

C中指针之间的类型转换

也许一个不兼容的指针可以访问变量 #include <stdio.h> #include <stdlib.h> typedef struct father { int age; char* name; } father; typedef struct student { int age; doubl ......
指针 之间 类型

理解C语言中的void类型的指针

1.void类型指针简介 void类型的指针又被称为泛型指针,通用型指针 void类型的指针:指针指向的内存地址中的数据的类型未知 其他所有类型的指针都可以转换为void类型的指针,而且不需要强制类型转换(编译器会隐式/自动类型转换) void类型的指针也可以转换为任意类型的指针,需要强制类型转换( ......
指针 语言 类型 void

C语言中的函数指针以及模拟面向对象

函数指针的概念 顾名思义,函数指针就是指向函数的指针,该指针的值是函数的入口。下面的代码时函数指针的一个基本实例。 #include <stdio.h> int max_(int a, int b); int max1_(int (*func_p)(int, int), int a, int b); ......
指针 函数 对象 语言

C++ | 智能指针之模仿实现shared_ptr

template<class T> class Shared_pointer{ private: ssize_t *_ref_count; // 计数器的指针 T *_ptr; // 元素的指针 std::mutex *mtx; // 计数器的锁 public: explicit Shared_po ......
指针 shared_ptr 智能 shared ptr

C++ | 智能指针

头文件:#include <memery> 首先,对于智能指针,它是无法隐式构造的,不管是unique_ptr,还是shared_ptr,或者是weak_ptr。 即,如果想要初始化一个智能指针,得使用传入参数的形式: unique_ptr<int> up(new int); 为什么需要使用智能指针 ......
指针 智能

快指针慢指针

快指针和慢指针主要解决将某一目标值覆盖或抛到数组最后且不改变原数组剩下元素的顺序的问题 快指针每次循环都会往后移动,慢指针只有快指针没有遇到目标值的时候才会往后移动,在慢指针移动之前还要对目标值进行覆盖或则交换操作。 将目标值抛到最后 https://leetcode.cn/problems/mov ......
指针

编程扎记(三)[引用与指针、]

一、引用和指针的不同与相同 引用和指针的不同点: 1. 引用在定义时必须初始化,指针没有要求 2. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型 实体 3. 没有NULL引用,但有NULL指针 4. 在sizeof中含义不同:引用结果为引用类型的大小,但 ......
指针

[算法学习笔记] 浅谈二路归并&双指针&归并排序

二路归并 · 双指针 是一种优化思想。它可以在 \(O(n)\) 的复杂度下把两个长度为 \(n\) 的有序数组合并为一个有序数组。 它的具体处理方法如下: 定义两个长度为 \(n\) 的升序数组 \(a,b\)。,合并完后长度为 \(2n\) 的数组 \(c\),初始化两个指针 \(x=y=1\) ......
指针 算法 amp 笔记

C语言-复杂的指针关系

非法的指针 指针表达式 函数指针 函数指针 - Sunsin - 博客园 (cnblogs.com) #include <stdio.h> int main() { int* a ; *a = 12; return 0; } ......
指针 语言

c++中指针和引用的区别?

1.指针是一个实体,需要分配内存空间,引用是一个变量的别名,不需要分配内存空间。 2.引用在定义的时候必须进行初始化,并且不能改变。引用的值不能为NULL,指针在定义的时候不一定要初始化,并且指针所指向的空间是可变的,可以指向NULL。 3.sizeof指针得到的是指针本事的大小,sizeof引用得 ......
指针

函数指针

函数指针可以将函数作为函数的参数,对函数的参数设置想要的操作 void PrintValue(int value){ std::cout<<value<<std::endl; } void ForEarch(const std::vector<int>& v,void(*funtion)(int)) ......
指针 函数

有关指针的一些代码定义

定义一个指针 int *p; p是指向整型的指针。由于没有初始化操作,p的指向是未知的,这是一个野指针。 连续定义指针 int *p1, *p2; p1和p2都是指针类型。如果写成 int *p1, p2; p1是指针类型,p2是整型变量,不是指针。 常量指针(指向常量的指针变量) const in ......
指针 代码

C++中的类指针

Student a; s.setName("A"); // Studeng *b = new Student(); Student *b; // 声名指针 b = new Student(); // 动态分配内存 b->setName("B"); // 访问成员函数 分析 定义类对象基本格式是:St ......
指针

shared_ptr在多线程下的安全性问题

1. 引用 boost官方文档中有如下结论: https://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htm#ThreadSafety 1)同一个shared_ptr被多个线程“读”是安全的; 2)同一个shared_ptr被多 ......
线程 shared_ptr 安全性 shared 问题

指针函数和函数指针

指针函数(Pointer to Function) 指针函数:是指一个函数,其返回类型是一个指向函数的指针。这意味着该函数返回一个可以调用踢啊函数的指针。通常情况下,指针函数的声明如下: 返回类型 (*函数指针变量名)(参数类型1,参数类型2,.....); 例如,如下是一个简单的指向函数指针声明的 ......
指针 函数

虚函数指针和虚表

虚函数指针是一个指向指针数组(定义类对象时, 编译器自动将类对象虚函数指针指向这个虚函数表)的void类型的指针(void**),虚表是一个一维数组,无论是类指针还是类引用还是实例化base1,base2它们只有一个虚函数指针和一个虚函数表,也就是说虚函数指针和虚函数表是属于类的(也就是被所有对象共 ......
指针 函数

C++指针详解

目录概述一、指针是什么?二、变量在内存中的存储三、指针对象(变量)1、定义指针对象2、获取对象地址3、解析地址对象4、指针值的状态5、指针之间的赋值四、指针内含信息1、void*指针五、指针的算数运算六、函数和指针1、函数的参数和指针2、函数的指针3、返回值和指针七、const与指针1、常量指针2、 ......
指针

图解 LeetCode 算法汇总——双指针

双指针算法是一种比较常用于搜索链表或数组相关的问题,很多算法的基本的解题思路就是使用暴力搜索法。而双指针是对暴力搜索的一种优化,通过双指针可以减少数据的遍历次数。通常双指针是有两个指针,叫做 light 左指针和 right 右指针,或者叫做快指针和慢指针。 作为左右指针的话,一般是在数组的或者链表 ......
指针 算法 LeetCode

函数指针与指针函数

int* test(int a, char b) { printf("%d\n", a); } void test1(int a) { printf("%d\n", a * a); } void test2(int a) { printf("%d\n", a * 5); } int main() { ......
指针 函数

02指针篇

指针数组 #include <stdio.h> int main() { static char *s[]={"black","white","pink","violent"};//指针数组4个元素分别为4个字符串地址 char **ptr[]={s+3,s+2,s+1,s};//指针的指针,分别保 ......
指针

指针

指针 指针,存放的是地址,指向地址上的值 一般的,指针的用处是 1、实现动态数组 2、实现链表等数据结构 指针定义 指针类型 * 指针变量 如: int a; int *p; //注意:定义指针时的*属于声明,并不是取值符 p = &a; //&为取地址符,p存放a的地址 所以 *p 等价于 a; ......
指针

指针的前加加和后加加运算

目录: 前加加和后加加 **p++ **++p *++*p **p++ 前加加和后加加 前加加和后加加的区别就是先自增还是先参与运算。顾名思义,后加加就是先参与运算,在进行自增。先加加就是先进行自增,再参与运算。 以下面的代码为例: int i = 1, j = 1; int num1 = 0, n ......
指针

C++智能指针

智能指针是C++语言中一种方便、安全的内存管理工具。智能指针可以自动管理对象的生命周期,避免手动分配和释放内存时可能出现的内存泄漏和悬挂指针等问题。在C++11标准中,引入了三种智能指针:unique_ptr、shared_ptr 和 weak_ptr。 类型 含义 备注 std::unique_p ......
指针 智能

手撕智能指针shared_ptr

#include <bits/stdc++.h> using namespace std; class Count { private: int cnt; public: Count() :cnt(1) {} ~Count() = default; void addcount() { ++cnt; ......
指针 shared_ptr 智能 shared ptr

C++11中的智能指针shared_ptr、weak_ptr源码解析

https://www.jb51.net/article/224028.htm − 目录 1、前言 2、源码准备 3、智能指针概念 4、源码解析 4.1、shared_ptr解析 4.1.1、shared_ptr 4.1.2、__shared_ptr 4.1.3、__shared_count 4.1 ......
指针 shared_ptr ptr 源码 weak_ptr

代码随想录算法训练营第9天| ●28. 实现 strStr() ●459.重复的子字符串 ●字符串总结 ●双指针回顾

28.找出字符串中第一个匹配项的下标 mydemo--(my thought)--(falied) class Solution { public: int strStr(string haystack, string needle) { for(int i=0; i<haystack.size() ......
字符串 字符 随想录 训练营 指针

复杂指针解读typedef double(* (* (*p3)() )[10] )()

1 #include<stdio.h> 2 /* “右左法则”: */ 3 //*p3 指针 4 //(*p3)() 函数指针 函数参数列表为() 5 //*(*p3)() 函数指针 函数参数列表为()、返回值类型为指针 6 //(*(*p3)())[10] 数组指针 指针为函数指针 函数参数列表为 ......
指针 typedef double 10 p3