rust学习-不安全操作
在 Rust 中,不安全代码块用于避开编译器的保护策略
四种不安全操作
- 解引用裸指针
- 通过 FFI (Foreign Function Interface,外部语言函数接口)调用函数
- 调用不安全的函数
- 内联汇编(inline assembly)
解引用裸指针
原始指针(raw pointer,裸指针)* 和引用 &T 有类似的功能
引用总是安全的,因为借用检查器保证了它指向一个有效的数据
解引用不安全,一个裸指针只能通过不安全代码块执行
fn main() {let raw_p: *const u32 = &10;unsafe {assert!(*raw_p == 10);}
}
调用不安全函数
使用了 Rust 的 unsafe 特性
从原生指针中创建 slice 是不安全的,需要手动来确保指针和长度的正确性
use std::slice;fn main() {// 定义一个包含四个元素的 Vectorlet some_vector = vec![1, 2, 3, 4];// 获取指向 Vector 对象的原始指针和长度let pointer = some_vector.as_ptr();let length = some_vector.len();// 不安全操作,使用unsafe块unsafe {// 通过原始指针和长度创建一个 u32 类型的不可变 slicelet my_slice: &[u32] = slice::from_raw_parts(pointer, length);// 使用 assert_eq! 宏进行断言,比较 Vector 和转换后的 slice 是否相等assert_eq!(some_vector.as_slice(), my_slice);}
}
附录
切片
&[u32] 是一个不可变的切片类型,也称为引用切片(slice reference)
用于表示一个基于某个 u32 类型的数组或向量的引用部分
它由一个指向数据的指针和一个长度值组成
指针指向数组或向量中第一个元素的地址
长度则表示这个切片包含的元素数目
常用于接收函数的参数/返回函数的结果
// 将数组或者向量转为slice切片
fn fn_name(slice: &[u32]) -> u32 {let mut sum = 0;for i in 0..slice.len() {sum += slice[i];}sum
}fn main() {let array = [1
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
rust学习-不安全操作
在 Rust 中,不安全代码块用于避开编译器的保护策略 四种不安全操作 解引用裸指针通过 FFI (Foreign Function Interface,外部语言函数接口)调用函数调用不安全的函数内联汇编(inline assembly)解引用裸指针 原始指针(raw pointer,裸指针)* 和引用 &T 有类似的功…...
![](https://img-blog.csdnimg.cn/51d675262c244de3a4597d9917aa58ac.png)
RHCE——八、DNS域名解析服务器
RHCE 一、概述1、产生原因2、作用3、连接方式4、因特网的域名结构4.1 拓扑4.2 分类4.3 域名服务器类型划分 二、DNS域名解析过程1、分类2、解析图:2.1 图:2.2 过程分析 三、搭建DNS域名解析服务器1、概述2、安装软件3、/bind服务中三个关键文件4、配置文…...
![](https://www.ngui.cc/images/no-images.jpg)
flink cdc初始全量速度很慢原因和优化点
link cdc初始全量速度很慢的原因之一是,它需要先读取所有的数据,然后再写入到目标端,这样可以保证数据的一致性和顺序。但是这样也会导致数据的延迟和资源的浪费。flink cdc初始全量速度很慢的原因之二是,它使用了Debezium作为捕获…...
![](https://img-blog.csdnimg.cn/4a5d4116ddd8453b8b16552797279006.png)
论文笔记: MOGRIFIER LSTM
2020 ICLR 修改传统LSTM 当前输入和隐藏状态充分交互,从而获得更佳的上下文相关表达 1 Mogrifier LSTM LSTM的输入X和隐藏状态H是完全独立的 机器学习笔记:GRU_gruc_UQI-LIUWJ的博客-CSDN博客这篇论文想探索,如果在输入LSTM之前…...
![](https://img-blog.csdnimg.cn/b02c598b75234c439266c14600a6a0f8.png)
Angular中使用drag and drop实现文件拖拽上传,及flask后端接收
效果:拖拽文件到组件上面时 边框变大变红 松手后发送到服务器(或者点击蓝字手动选择文件)并且把文件名显示在框内,美化还没做 html <div class"drapBox"><div id"drop" (dragenter)"dragenter($event)" (dragov…...
![](https://img-blog.csdnimg.cn/img_convert/b25f8a5ab87df082f2863791fcae152c.png#?w=1381&h=574&e=png&b=fdfdfd)
Spring Authorization Server入门 (十六) Spring Cloud Gateway对接认证服务
前言 之前虽然单独讲过Security Client和Resource Server的对接,但是都是基于Spring webmvc的,Gateway这种非阻塞式的网关是基于webflux的,对于集成Security相关内容略有不同,且涉及到代理其它微服务,所以会稍微比较麻…...
![](https://img-blog.csdnimg.cn/f9504804c9fa45aa9eed1e2c19566b88.png)
配置Flink
配置flink_1.17.0 1.Flink集群搭建1.1解压安装包1.2修改集群配置1.3分发安装目录1.4启动集群、访问Web UI 2.Standalone运行模式3.YARN运行模式4.K8S运行模式 1.Flink集群搭建 1.1解压安装包 链接: 下载Flink安装包 解压文件 [gpbhadoop102 software]$ tar -zxvf flink-1.1…...
![](https://img-blog.csdnimg.cn/e6fb5cbb4da64f7398b3b00164890a9b.png)
39、springboot的前端静态资源的WebJar支持(bootstrap、jquery等)及自定义图标和首页
★ WebJar支持 Spring Boot支持加载WebJar包中的静态资源(图片、JS、CSS), WebJar包中的静态资源都会映射到/webjars/**路径。——这种方式下,完全不需要将静态资源复制到应用的静态资源目录下。只要添加webjar即可。假如在应用的…...
![](https://img-blog.csdnimg.cn/img_convert/11253537c526df0427c6d09ca545922d.png)
【图论】缩点的综合应用(一)
一.缩点的概念 缩点,也称为点缩法(Vertex Contraction),是图论中的一种操作,通常用于缩小图的规模,同时保持了图的某些性质。这个操作的目标是将图中的一些节点合并为一个超级节点,同时调整相关…...
![](https://www.ngui.cc/images/no-images.jpg)
C++—纯虚函数
一、前言 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义函数为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用&…...
![](https://www.ngui.cc/images/no-images.jpg)
经过卷积神经网络之后的图片的尺寸如何计算
经过卷积神经网络(Convolutional Neural Network,CNN)处理后,图片的尺寸会发生变化,这是由于卷积层、池化层等操作引起的。计算图片经过卷积神经网络后的尺寸变化通常需要考虑卷积核大小、步幅(stride&…...
![](https://www.ngui.cc/images/no-images.jpg)
Java升级JDK17(更高版本同理),修改maven
记住三个网址就行:下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的:这个是开源的(推荐这个!&am…...
![](https://img-blog.csdnimg.cn/img_convert/6f604a91f31369a47f472f896fd2aa25.png)
Go测试之.golden 文件
Go测试中的.golden 文件是干什么用的?请举例说明 在Go语言中,.golden文件通常用于测试中的黄金文件(golden files)。黄金文件是在测试期间记录预期输出结果的文件。测试用例运行时,黄金文件用于比较实际输出与预期输出…...
![](https://img-blog.csdnimg.cn/8f91680a03ca4336a1e2a02a06400749.png#pic_center)
回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果一览基本介绍程…...
![](https://img-blog.csdnimg.cn/4b092c99d95c4a308527af6c095181b8.png)
springboot整合rabbitmq死信队列
springboot整合rabbitmq死信队列 什么是死信 说道死信,可能大部分观众大姥爷会有懵逼的想法,什么是死信?死信队列,俗称DLX,翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费,…...
![](https://img-blog.csdnimg.cn/8492f848225c4922a64552d822893c74.png)
高中信息技术教资考试模拟卷(22下)
2022 年下半年全国教师资格考试模考卷一 (高中信息技术) 一、单项选择题(本大题共 15 小题,每小题 3 分,共 45 分) 1.2006 年 10 月 25 日,深圳警方成功解救出一名被网络骗子孙某…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux中shadow及passwd格式内容解析
/etc/passwd文件包括Linux账号信息,示例如下: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin 具体格式 用户名࿱…...
![](https://img-blog.csdnimg.cn/img_convert/0d6853809ef51e3f04ae6cceb73a85b5.jpeg)
计算机视觉 – Computer Vision | CV
计算机视觉为什么重要? 人的大脑皮层, 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道,没有之一。 在网络世界,照片和视频(图像的集合)也正在发生爆炸式的增长! 下图是网络上…...
![](https://img-blog.csdnimg.cn/ea0a5444f96c44468539eed4a8da1c4b.png)
2.Redis 通用命令
Redis 中最核心的两个命令: set 作用:设置 key 对应的 value 值并存储进去。若key已包含一个值,则无论其类型如何,都会覆盖该值。在SET操作成功时,将丢弃与密钥相关联的任何先前生存时间。 对于上述这里的 key和val…...
![](https://img-blog.csdnimg.cn/1d340e4604e64aee897a195b7b18b7b8.png)
【学习FreeRTOS】第18章——FreeRTOS软件定时器
1.软件定时器的简介 定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可自定义定时器的周期硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度一般很高,每次在定时时…...
![](https://img-blog.csdnimg.cn/img_convert/956c1369947d5efab27b8d45307ed657.jpeg)
C++--两个数组的dp问题(2)
1.交错字符串 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定三个字符串 s1、s2、s3,请判断 s3 能不能由 s1 和 s2 交织(交错) 组成。 两个字符串 s 和 t 交织 的定义与过程如下,其中每个字符串都…...
![](https://www.ngui.cc/images/no-images.jpg)
利用人工智能彻底改变库存管理:综合指南
通过本指南了解人工智能如何增强库存管理,为希望简化运营的管理者和企业主提供帮助。 库存管理是任何销售实物产品的企业的重要组成部分。它包括跟踪库存水平,预测未来需求,并确保始终有足够的产品来满足客户需求,但又不会因库存过多而浪费金钱。有效的库存管理可以显着降…...
![](https://img-blog.csdnimg.cn/c02590d4e72f4e23a81db2f091600c69.png)
连接器信号完整性仿真教程 七
本将介绍微带线及差分微带线仿真。做连接器信号完整性仿真时,有时后没法将激励端口直接设置到连接器端子上,这就需画出连接器PCB PAD,将激励端口设置在PAD的端面上,或者用引线连接PAD,将引线引出到适当的位置ÿ…...
![](https://img-blog.csdnimg.cn/1107fe22b3554edfbdfa966a6b8dfb25.png)
Wireshark数据抓包分析之UDP协议
一、实验目的: 通过使用wireshark对UDP数据包的抓取分析UDP协议的内容 二、预备知识: UDP协议的概念:UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。它也不提供报文到达确认、排序及流量控制等功能。 …...
![](https://img-blog.csdnimg.cn/5f2308166f5745499a4688be99c46f90.png)
Java小游戏
一、需求 二、思路一 HP当然是怪物的一个属性成员,而武器是角色的一个属性成员,类型可以使字符串,用于描述目前角色所装备的武器。角色类有一个攻击方法,以被攻击怪物为参数,当实施一次攻击时,攻击方法被调…...
![](https://img-blog.csdnimg.cn/e4ce049d1f8249a48a894d42f4201e55.png)
服务器Linux系统配置mysql数据库主从自动备份
服务器Linux系统配置mysql数据库主从自动备份 当数据内容越来越多的时候,数据库也变得越来越大了。如果不小心误删了,或者被黑主机了,那就什么都没有了。所以数据库的数据怎么能让它不丢失做到万无一失变得尤为重要! 我是艾西&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Java通过PowerMockito和Mokito进行单元测试
PowerMockito和Mokito的概念 PowerMockito和Mockito都是Java语言中的测试框架,用于进行单元测试和集成测试。它们中的每一个都有不同的功能和应用。 Mockito是一个基于模拟的测试框架。它允许你模拟对象,在测试中隔离被测代码的依赖项。使用Mockito&am…...
![](https://img-blog.csdnimg.cn/img_convert/7c99f78d2f3bcdcc7c2181a659eb20f6.png)
数字化技术无限延伸,VR全景点亮智慧生活
随着互联网的发展,我们无时无刻不再享受着互联网给我们带来的便利,数字化生活正在无限延伸,各行各业也开始积极布局智能生活。要说智慧生活哪个方面应用的比较多,那应该就是VR全景了,目前VR全景已经被各个行业广泛应用…...
![](https://img-blog.csdnimg.cn/img_convert/e6a2c3e58ab3277bbcc05e2814419af6.jpeg)
抖音艺术签名小程序源码/艺术签名设计小程序源码/字节跳动小程序开发
最近很火的抖音艺术签名小程序源码,这是一款艺术签名设计小程序源码,字节跳动小程序开发,之适用于字节系小程序。介意请绕过! 下载地址:https://bbs.csdn.net/topics/616145725...
![](https://img-blog.csdnimg.cn/img_convert/083a99e74772c21d513856d6eb6f1105.png)
养号自动化,指纹浏览器和RPA机器人解除烦恼
在这个充满科技魔力的时代,社交媒体已经成为人们生活的一部分,而Facebook更是我们分享欢乐、联络亲友的重要平台。然而,随之而来的是一个棘手的问题:如何保持账号的活跃度,而又不被沉重的养号工作压垮?别担…...
![](/images/no-images.jpg)
用iis浏览网站/bt蚂蚁
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xmt1139057136/article/details/77983392 甲骨文宣布,Oracle 已选择 Eclipse 基金会作为 Java EE 的新东家。甲骨文与该平台的另外两大贡献者 —— IBM 和 Red Ha…...
烟台H5网站设计公司/东莞网站建设推广技巧
点击上方“Github爱好者社区”,选择星标回复“资料”,获取小编整理的一份资料作者 l Hollis来源 l Hollis在我的博客和公众号中,发表过很多篇关于并发编程的文章,之前的文章中我们介绍过了两个在Java并发编程中比较重要的两个关键…...
![](https://img-blog.csdnimg.cn/5dc214894d574a468f0a875a61e869f0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY1NDU4Mg==,size_16,color_FFFFFF,t_70)
怎么制作个人求职网站/国产十大erp软件
文章目录TCP服务器与客户端TCP基础net模块创建TCP服务器和客户端UDP服务器与客户端UDP基础dgram模块创建UDP服务器和客户端WebSocket服务器与客户端WebSocket实现机制WebSocket构建实时聊天室学习文章:Node.js 网络编程 (上)Web基础知识、实现…...
![](https://img2018.cnblogs.com/blog/872412/201903/872412-20190322092558742-993768285.png)
wordpress安装后后台无css/南宁网站关键词推广
在开始之前先了解下js数据类型 js基本数据类型: null undefined number boolean string js引用数据类型: function object array 一说instanceof 就想到typeof ,这里也介绍下typeof: typeof是用来判断数据类型的,就一个参数 ,使用…...
![](https://img-blog.csdnimg.cn/img_convert/617f390950017ab4bc0371ea1f0e5cdd.png)
o2o网站建设哪家好/googleseo优化
1.准备两个个全新的tomcat8,用来作为sso单点登录的客户端,如下: 2.修改server.xml文件(因为考虑到端口冲突,所以将里面的端口全部改掉) 需要框架源码的朋友可以看我个人简介联系我,推荐源码 其中apache-tomcat-clien…...
![](/images/no-images.jpg)
北京建设工程交易信息网站/百度自动点击器怎么用
投屏技术已经被大量用在身边的产品, 比如电视投屏, 投影仪, 视频会议产品中. 在iOS平台外的其他平台中都已经有非常成熟的标准和实现. 但在封闭的苹果iOS和Mac系统中, 苹果使用私有的Airplay协议进行多屏互动, 只开放给自己生态中的产品. 对此相关技术限制比较严格,…...