如何在 C++ 中将使用 malloc 创建的数组声明为易失性

2024-01-06

我认为下面会给我 10 个易失性整数

volatile int foo[10];

但是,我不认为以下内容会做同样的事情。

volatile int* foo;
foo = malloc(sizeof(int)*10);

如果我对此以及如何使用 malloc 拥有易失性项目数组有误,请纠正我。

Thanks.


int volatile * foo;

从右向左读“foo 是一个指向 volatile int 的指针”

因此,无论您通过 foo 访问什么 int,该 int 都将是易失性的。

P.S.

int * volatile foo; // "foo is a volatile pointer to an int"

!=

volatile int * foo; // foo is a pointer to an int, volatile

意味着 foo 是不稳定的。第二种情况实际上只是一般从右到左规则的遗留。 要吸取的教训是养成使用的习惯

char const * foo;

而不是更常见的

const char * foo;

如果你想要更复杂的东西,比如“指向函数的指针返回指向 int 的指针”,那么它才有意义。

P.S.,这是一个大问题(也是我添加答案的主要原因):

我注意到您将“多线程”作为标签包含在内。您是否意识到 volatile 对于多线程几乎没有什么好处?

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

如何在 C++ 中将使用 malloc 创建的数组声明为易失性 的相关文章

  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • 什么是竞争条件?

    编写多线程应用程序时 最常见的问题之一是竞争条件 我向社区提出的问题是 竞赛条件是什么 你如何检测它们 你如何处理它们 最后 如何防止它们发生 当两个或多个线程可以访问共享数据并且它们试图同时更改它时 就会出现竞争条件 由于线程调度算法可以
  • 条件类型定义

    如果我有一小段这样的代码 template
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • .Net Reactive Extensions Framework (Rx) 是否考虑拓扑顺序?

    Net 反应式扩展框架是否按拓扑顺序传播通知以最大限度地减少更新量 就像 Scala Rx 所做的那样 Net 反应式扩展 Rx 是否可以 https github com lihaoyi scala rx wiki How it Work
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository

随机推荐

  • Vue Router:如何将参数转换为整数而不是字符串?

    当我使用浏览器字段输入 URL 时 参数将转换为字符串 而不是整数 例如 user 1回报 id 1 然而 当使用时this route push 参数正确地转换为整数 id 1 这种行为是故意的吗 如果没有 我该如何解决 您必须自己处理任
  • 请求运行时位置权限时

    目前 当第一次启动我的应用程序时请求运行时权限时 它会提示用户使用他们的位置 如果您单击 是 它不会像应有的那样启用位置 但如果我重新启动该应用程序 它就会启用该位置 关于在哪里可以让它在首次启动时启用位置有什么建议吗 代码的第一部分在 O
  • AesManaged 和 RijndaelManaged

    我目前正在开发一个连接到旧 Web 服务的 Silverlight 应用程序 我们的旧 Web 服务使用 silverlight 不支持的加密工具 最后 我们决定使用 AesManaged 进行加密 但是 我们的网络服务不支持 AesMan
  • 检测 Entity Framework Core 中的延迟加载

    Entity Framework Core 3 1 2 我已启用UseLazyLoadingProxies on my DbContext以确保数据完整性 但如果使用它 我想在开发过程中抛出异常 如何在每次 EF Core 延迟加载关系时执
  • 在 EC2 上的 Virtualenv 中运行 Django -- ImportError:没有名为 django.core.management 的模块

    我在 git 存储库中本地开发了一个 django 应用程序 我为该项目启动了一个 EC2 实例 并设置了一个包含 我认为是 正确的包 依赖项的 virtualenv 然后我继续将我的存储库克隆到 virtualenv 中 现在 我遇到了困
  • 私有方法和属性的 ReSharper C# 命名风格

    我喜欢将私有方法 属性和事件的首字母设为小写 将公共方法 属性和事件的首字母设为大写 但是 在 ReSharper 7 1 中 C 命名样式下只有一个选项适用all方法 属性和事件 告诉 ReSharper 使用不同约定的最佳方法是什么pr
  • 无序映射与向量

    我正在构建一个小型 2D 游戏引擎 现在我需要存储游戏对象的原型 所有类型的信息 我猜一个容器最多有几千个元素 所有元素都有唯一的键 并且在第一次加载后不会删除或添加任何元素 键值是一个字符串 各种线程将运行 我需要向每个人发送一个密钥 或
  • 我怎么知道是否是require_once?

    我有两个文件 1 索引 php 2 main php 索引 php拨电至main php by 我怎么知道从main php当它执行时 if 索引 php调用他或同一用户独立执行它 如果是 require once 我应该在主 php 中询
  • 如何在 phpunit 中引用外部数据提供者?

    我正在尝试使用 PHPUnit 中的通用数据提供程序运行一些测试 参见下面的测试 namespace AppBundle Tests Controller use Symfony Bundle FrameworkBundle Test We
  • 使用数据框索引数据的 pandas 数据透视表

    我想从 pandas 数据框创建一个数据透视表 使用 dataframe pivot 并且不仅包括数据帧列 还包括数据帧索引中的数据 找不到任何说明如何执行此操作的文档 有小费吗 Use reset index使索引成为一列 In 45 d
  • 在 Android 中为图像视图添加缩放功能

    我想在我的 Android 应用程序中添加缩放功能 我已经尝试过这段代码 但它只是在图像中间放大和缩小 我想对整个图像应用缩放 在同一张图像中 我可以在图像的某些区域放置一个按钮吗 import android content Contex
  • 根据值类型过滤键子列表的接口键

    Problem 给定一个被视为映射的 TypeScript 接口 将唯一键类型与非唯一值类型相关 可以提取 映射到指定值类型的键类型 作为一个具体的例子 从WindowEventMap in lib dom d ts interface W
  • 如何设置 curve_fit 的初始值以找到最佳优化,而不仅仅是局部优化?

    我正在尝试拟合幂律函数 并找到最佳拟合参数 但是 我发现如果参数的初始猜测不同 最佳拟合 输出就会不同 除非我找到正确的初始猜测 否则我可以获得最佳优化 而不是局部优化 有没有办法找到 合适的初始猜测 下面列出了我的代码 请随意提出任何意见
  • Angular 8:对象不支持属性或方法“包含”

    我正在 Angular8 中构建一个应用程序 我在 angular5 6 7 上工作 对于这些应用程序 我取消了 polyfills ts 中存在的导入的注释 对于 Angular 8 它只有 3 个导入 即 classlist js we
  • 将网站表单转换为 PDF 并通过电子邮件发送给网站管理员

    我正在尝试为我的网站创建一个表单 一旦提交 该表单将转换为 PDF 并通过电子邮件发送给我自己 网站管理员 我知道我无法纯粹使用 JQuery Javascript 来完成该操作 我需要使用 PHP 来发送电子邮件 将 HTML 转换为 P
  • 如何在更改值后在运行时保存 ScriptableObject

    我在使用 ScriptableObjects 作为 Unity 应用程序中的保存对象时遇到问题 当我尝试向其中写入值时 一切都工作得很好 但如果我想关闭应用程序并加载 ScriptableObject 的值 这些值将重置为最后的值 这破坏了
  • AVFoundation 声音可以在 iOS 6 模拟器上工作,但不能在设备上工作?

    帮助 我可以在 iOS 模拟器上播放声音 但不能在我的设备上播放声音 这是我的代码 是的 音频文件位于指定位置 它绝对有效 SystemSoundID hashtag NSString path NSBundle mainBundle pa
  • 使用 Java 读取 .jar 清单文件

    所以我试图通过检查 mainfest 文件中的一些值来查看 jar 是否有效 使用java读取和解析文件的最佳方法是什么 我想到使用这个命令来提取文件 jar xvf anyjar jar META INF MANIFEST MF 但我可以
  • 无法通过 Google Apps 脚本打开 Slack 对话框

    我正在尝试使用 google apps 脚本和 Slack 来自动化我的工作 我希望使用 Slack 对话框输入一些文本 以使用 google apps 脚本修改我的 google 电子表格 但是 使用下面的代码 我无法通过以下方式打开对话
  • 如何在 C++ 中将使用 malloc 创建的数组声明为易失性

    我认为下面会给我 10 个易失性整数 volatile int foo 10 但是 我不认为以下内容会做同样的事情 volatile int foo foo malloc sizeof int 10 如果我对此以及如何使用 malloc 拥