c语言中通过指针将数值赋值到制定内存地址

2023-05-16

 

1.一种直观的方法

 

假设现在需要往内存0x12ff7c地址上存入一个整型数0x100。我们怎么才能做到呢?

我们知道可以通过一个指针向其指向的内存地址写入数据,那么这里的内存地址0x12ff7c其本质不就是一个指针嘛。所以我们可以用下面的方法:

int *p = (int *)0x12ff7c;
*p = 0x100;

 

需要注意的是将地址0x12ff7c赋值给指针变量p的时候必须强制转换

 

1.1 为什么在此处,我们敢往0x12ff7c这个地址赋值呢?

  至于这里为什么选择内存地址0x12ff7c,而不选择别的地址,比如0xff00等。这仅仅是为了方便在Visual C++ 6.0上测试而已。如果你选择0xff00,也许在执行*p = 0x100;这条语句的时候,编译器会报告一个内存访问的错误,因为地址0xff00处的内存你可能并没有权力去访问。既然这样,我们怎么知道一个内存地址是可以合法的被访问呢?也就是说你怎么知道地址0x12ff7c处的内存是可以被访问的呢?其实这很简单,我们可以先定义一个变量i,比如:

int i = 0;

变量i所处的内存肯定是可以被访问的。然后在编译器的watch窗口上观察&i的值不就知道其内存地址了么?这里我得到的地址是0x12ff7c,仅此而已(不同的编译器可能每次给变量i分配的内存地址不一样,而刚好Visual C++ 6.0每次都一样)。你完全可以给任意一个可以被合法访问的地址赋值。得到这个地址后再把“int i = 0;”这句代码删除。一切“罪证”销毁得一干二净,简直是做得天衣无缝。

 

2.另一个方法

 

除了这样就没有别的办法了吗?未必。我们甚至可以直接这么写代码:

*(int *)0x12ff7c = 0x100;

这行代码其实和上面的两行代码没有本质的区别。先将地址0x12ff7c强制转换,告诉编译器这个地址上将存储一个int类型的数据;然后通过钥匙“*”向这块内存写入一个数据。


上面讨论了这么多,其实其表达形式并不重要,重要的是这种思维方式。也就是说我们完全有办法给指定的某个内存地址写入数据的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言中通过指针将数值赋值到制定内存地址 的相关文章

  • Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    如果要在Linux上做j2ee开发 xff0c 首先得搭建好j2ee的开发环境 xff0c 包括了jdk tomcat eclipse的安装 这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS 七 CentOS下j2ee环境
  • selenium.common.exceptions.WebDriverException: Message: "Can't load the profile.

    记录一下 xff0c Selenium在最新版本中修好了这个问题 运行CMD xff0c 然后输入 pip install U selenium
  • 网页跳转(APP内/浏览器)

    APP内网页跳转 xff1a xml lt WebView android layout below 61 span class hljs string 34 64 id lunbo 34 span android layout width
  • Intellij IDEA Resource Bundle

    Resource Bundle是什么 可以直接通过官方的描述来了解 https www jetbrains com hel Resource bundle is a set of properties files that have sam
  • H3C配置日志主机

    华三网络设备信息级别共有8级 xff0c 从高到底分别为emergencies alerts critical errors warnings notifications infomational debugging 信息级别数值描述eme
  • MIUI11系统怎么样刷入开发版获得Root超级权限

    小米的手机或平板不同手机型号一般情况下官网都提供两个不同的安卓系统版本 xff0c 可分为稳定版和开发版 xff0c 稳定版没有提供root权限管理 xff0c 开发版中就开启了root权限 xff0c 很多时候我们需要使用的一些功能强大的
  • 一起来看React(路由守卫)

    我们在很多时候都会接触到路由守卫 gt 无论是不是做 代码小子 的人 我们在浏览各网页时会看到头部的网址 如 xff1a 当我们在逛 xff1a 淘宝 天猫 京东 这一类的网站时我们自定义输入地址时 我们应该先登录 如果没登录我们应该跳转到
  • filezilla无法启动传输及严重文件传输错误

    filezilla无法启动传输 严重文件传输错误 文件夹权限不够 xff0c 修改之 你的空间或服务器已经满了 xff0c 请空下回收站或者扩容 文件正在被占用 xff0c 关闭后传输 转载于 https www cnblogs com w
  • 用KeyTool生成安全证书

    详细请见 xff1a Tomcat的帮助文档 xff0c xff1a https localhost 8080 tomcat docs ssl howto html 1 用keytool 生成证书 xff1a keytool genkey
  • Scheduling and emailing PeopleSoft Query results

    You could E Mail the Query results by embedding the paramters in a nVision Layout Create a Tabular nVision Layout Add th
  • VS2022 添加 dll 库文件

    参考链接 Visual Studio中的C 43 43 程序如何使用第三方静态库和动态库 xff1f 掘金 1 xff0c 添加库文件路径 在 Visual Studio 2022 中 xff0c 可以通过在项目属性页面中添加库文件的目录
  • OD常用断点(转载)

    常用断点 OD中 拦截窗口 xff1a bp CreateWindow 创建窗口 bp CreateWindowEx A 创建窗口 bp ShowWindow 显示窗口 bp UpdateWindow 更新窗口 bp GetWindowTe
  • Linux curl 命令模拟 POST/GET 请求

    curl 命令 xff0c 是一个利用URL规则在命令行下工作的文件传输工具 curl 支持文件的上传和下载 xff0c 所以是综合传输工具 xff0c 但按传统 xff0c 习惯称curl为下载工具 作为一款强力工具 xff0c curl
  • WINserver路由服务之多网段管控

    前几天 xff0c 看见了一个朋友写的一篇文章 实现win2003路由功能 看了之后的感觉是 xff0c 只写了路由功能的安装部分 xff0c 对于功能实现之后的应用 xff0c 没怎么谈到 于是跟他交流了一下下 然后也建议他来看看我的那篇
  • ubuntu环境下实现 多线程的socket(tcp) 通信

    改改就是个小型局域网聊天 服务器端 xff1a 1 File Name process server c 2 Author jiujue 3 Created Time 2019年03月10日 星期日 20时29分18秒 4 5 includ
  • cpptools-srv占用内存过大_iOS“其他内存”占用过大问题分析

    今天遇到了一个有趣的关于iPhone 占用内存过大的问题 xff0c app与正常使用内存没问题 xff0c 但莫名多了很多其他内存 手机只有64g但其他占了50g 首先百度一波 xff0c 得到的答案无一是还原出厂设置 xff0c 抹掉所
  • nginx限制客户端请求数+iptables限制TCP连接和频率来防止DDOS

    DDOS的特点是分布式 xff0c 针对带宽和服务 xff0c 即四层流量 和七层应用 对于七层的应用 xff0c 如果前端是Nginx xff0c 主要使用nginx的http limit conn和http limit req模块来防御
  • Android带图片的Toast(自定义Toast)

    使用Android默认的Toast Toast简介 xff1a Toast是一个简单的消息显示框 xff0c 能够短暂的出现在屏幕的某个位置 xff0c 显示提示消息 默认的位置是屏幕的下方正中 xff0c 一般Toast的使用如下 xff
  • XML CDATA是什么?

    解析数据 XML 解析器通常情况下会处理XML文档中的所有文本 当XML元素被解析的时候 xff0c XML元素内部的文本也会被解析 lt message gt This text is also parsed lt message gt

随机推荐

  • TCP端口同时做服务器与客户端

    下面的代码主要实现两个功能 xff1a 1 xff0c 通过bind使本机指定端口如2012端口与远端服务器通信 xff0c 不指定的话会随机分配 2 xff0c 然后使用该指定端口创建监听服务 xff0c 接受其他客户端的连接 主要方法用
  • bat脚本禁用和开启本地连接

    netsh interface set interface name 61 34 本地连接 34 admin 61 disabled 禁用本地连接 netsh interface set interface name 61 34 本地连接
  • 一个PHP的QRcode类,与大家分享

    类的代码 View Code lt php eval gzinflate base64 decode 39 7X1td9s2svDn3nP2PzBZNZJiKRb1ZtmxvY 43 bOE3u2o5rp9u7N5v1oSTaZqO3UHQ
  • Java程序员的黄金5年,从入行到大牛的晋升之路

    在程序界流行着一种默认的说法叫 黄金5年 xff0c 也就是一个程序员从入职的时候算起 xff0c 前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向 xff0c 如何走好这5年 xff0c 彻底从一个刚入行的菜鸟蜕变成可以以不变
  • Gin 框架的路由结构浅析

    Gin 是 go 语言的一款轻量级框架 xff0c 风格简单朴素 xff0c 支持中间件 xff0c 动态路由等功能 gin项目github地址 路由是web框架的核心功能 在没有读过 gin 的代码之前 xff0c 在我眼里的路由实现是这
  • 红米手机5 Plus启用root超级权限的步骤

    红米手机5 Plus怎么开启root超级权限 xff1f 做开发的人清楚 xff0c Android机器有root超级权限 xff0c 一旦手机开启root相关权限 xff0c 就可以实现更强的功能 xff0c 举个栗子做开发的人企业的营销
  • 基于vue解决大数据表格卡顿问题

    点我在线体验Demo 请用电脑查看 亲测苹果电脑 xff0c chrome浏览器无卡顿现象 xff0c 其它浏览器并未测试 xff0c 如遇到卡顿请备注系统和浏览器 xff0c 方便我后续优化 xff0c 谢谢 先看一下效果 一共1000
  • raid1损坏一块盘之后的处理方式

    在企业生产环境中 xff0c 假如raid1两块盘中的一块损坏了 xff0c 后续如何处理 xff1f 直接换下损坏的磁盘是否会对服务有影响 xff08 如何把影响降到最低 xff09 xff0c 加入新的磁盘后是否还需要重新做raid1
  • Landsat Tm5辐射定标和大气校正(转)

    一 辐射定标 1 由于ENVI 4 4 中有专门进行辐射定标的模块 xff0c 因此实际的操作十分简单 将原始TM 影像打开以后 xff0c 选择 Basic Tools Preprocessing Calibration Utilitie
  • Traversing the Dept Security tree

    We can use the connect by prior function provided by Oracle to traverse the Dept security Tree Suppose an Organization h
  • Reconfigurable computing[可重构计算]

    在实验室跟老师做一些硬件加速相关的东西 xff0c 看文献时看到Reconfigurable computing xff0c 发现这个很有意思 现在每天都有越来越多的数据产生 xff0c 要处理这些数据如果单纯用CPU计算的话会耗费很多时间
  • 嵌入式作业STM32采用串口DMA方式发送数据

    目录 前言 要求 一 DMA的基本介绍 DMA的基本定义 DMA的主要特征 STM32F411x系列芯片DMA控制器 二 通过CubeMX配置项目 1 创建项目 2 选择芯片STM32F103C8T6 3 设置RCC 4 设置串口 5 设置
  • C ~ char int 等数据转换问题

    1 xff0c char型数字转换为int型 char a 61 34 32 34 printf 34 d n 34 a 0 39 0 39 输出结果为3 2 xff0c int转化为char 1 字符串转换成数字 xff0c 用atoi
  • curl get请求添加header头信息

    function get url ch 61 curl init curl setopt ch CURLOPT HTTPGET true curl setopt ch CURLOPT RETURNTRANSFER 1 TRUE 将curl
  • 关于 RESTFUL API 安全认证方式的一些总结

    常用认证方式 在之前的文章 REST API 安全设计指南 与 使用 AngularJS amp NodeJS 实现基于 token 的认证应用 两篇文章中 xff0c 译 web权限验证方法说明 中也详细介绍 xff0c 一般基于REST
  • C++ REST SDK的基本用法

    微软开发了一个开源跨平台的http库 C 43 43 REST SDK xff08 http casablanca codeplex com xff09 xff0c 又名卡萨布兰卡Casablanca xff0c 有个电影也叫这个名字 xf
  • ubuntu下socket通信

    之前的博文介绍了如何在ubuntu下实现unix domain socket通信 xff0c 但只是本地的通信 xff0c 虽然过程和网络通信很类似 xff0c 但这里还是有必要了解下真正的socket通信 首先贴出server端的c代码
  • c语言中宏定义中void,C语言中宏定义几道问题!

    C语言中宏定义几道问题 xff01 答案 1 信息版本 xff1a 手机版 解决时间 2020 04 27 20 44 已解决 2020 04 27 17 15 一 执行下列程序 define MA x y x y k 61 5 k 61
  • IE浏览器自动配置脚本的使用(代理上网)

    以前在FireFox中设置过代理服务器自动配置脚本 xff0c 对于访问某些无法访问的网站非常有效 xff0c 在IE中应该也是有效的 xff0c 但是我配置了好几次都没有配置成功 xff0c 今天发现原来是格式错误 xff0c 修改了一下
  • c语言中通过指针将数值赋值到制定内存地址

    1 一种直观的方法 假设现在需要往内存0x12ff7c地址上存入一个整型数0x100 我们怎么才能做到呢 xff1f 我们知道可以通过一个指针 向其指向的内存地址写入 数据 xff0c 那么这里的内存地址0x12ff7c其本质不就是一个指针