在 c 中将数组转换为结构体,反之亦然

2024-01-15

令其为以下结构:

typedef struct { 
    int x;
    int y;
} st;

我可以将 int 数组“转换”为 struct st:

st z;
int t[2];
t[0] = 0;
t[1] = 1;
z = *(st*)(t);
printf("%d,%d\n", z.x, z.y);

那么输出是,除了例外:

0,1

但我无法将 struct st 转换为 int 数组:

st z = {0, 1};
int t[2];
t = *(int*)(&z);

因为数组在初始化后无法分配。

那么,我怎样才能实现这一目标呢? 谢谢你帮助我。


z = *(st*)(t);

从语法上讲,这段代码将编译(分配给struct)并且可能会给出预期或意外的结果,因为它违反了严格的别名要求。

t = *(int*)(&z);

由于多种原因,这段代码在语法上不正确,因此编译本身会失败。首先,你不能分配给数组,其次,你分配一个指针int to an int大批。更好的选择是使用memcpy or union反而。不过我会推荐会员副本。

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

在 c 中将数组转换为结构体,反之亦然 的相关文章

  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 何时使用以下瞬态、作用域和单例

    我读了一些关于此的文章 并且了解了如何使用 Transient Scoped 和 Singleton 但我很困惑何时使用其中之一 我的理解是 辛格尔顿 在需要存储员工数量的情况下 您可以创建单例 因为每次创建新员工时 它都会增加数量 因此在
  • 导入 _ssl 错误,DLL 加载失败,Python 37 Anaconda Windows 10

    我在 Win10 上遇到 ssl 问题 我已将 python 包和代码从 Windows 7 移至 Windows 10 一开始我面临以下问题 导入错误 缺少必需的依赖项 numpy 但这是通过重新安装 numpy 和 pandas 的 w
  • firebase 部署到自定义区域 (eu-central1)

    有没有办法指定将部署我的 firebase 函数的区域 区域 实际上我在文档中没有找到任何相关内容 并且我的函数总是部署到us central1但我想戴上它eu central1 是否可以在 Firebase 配置 文件中设置它 datab
  • 如何在 Meteor JS 中将数组值加载到模板变量?

    如何将数组值加载到 Meteor 中的模板变量 请查看下面的代码并建议我该怎么做 HTML 代码
  • 我应该将不带参数的 Perl 子例程称为 Marine() 或 Marine 吗?

    根据下面的示例代码 有两种调用子例程的方式 subname and subname C Perl bin perl exe use strict use warnings use 5 010 marine style 1 marine st
  • delphi 有没有办法通过名称实例化一个类?

    我想实例化一个类 但我只有字符串中的名称 有办法吗 这是来自 Delphi 帮助 Delphi 2006 但至少可以从 Delphi 7 获得 Syntax函数 GetClass const AClassName string TPersi
  • 正确地将 blazor 项目发布/部署到 github 页面

    首先我要说的是 我在这里的工作肯定比我的工资水平稍高一些 我将尽力描述这个问题并使其最容易回答 我在 Visual Studio 中创建了一个 Blazor 项目 并将其连接到 GitHub 存储库here https github com
  • 创建新的android项目时,出现错误“必须指定活动名称”

    当我尝试在如下所示的步骤中创建新的 Android 应用程序项目时 出现错误 必须指定活动名称 当我尝试创建新活动时也会发生同样的情况 我对分层父类有点困惑 它有什么用呢 为什么 Eclipse 不允许我在没有指定的情况下创建活动 这应该是
  • Visual Studio 的 Python 工具上的 Pytest

    可以在 Visual Studio 2010 上调试使用 pytest 库的 python 测试吗 我在解释器参数上添加了 m pytest 但未命中断点 我只能运行测试脚本而不对其进行调试 Pytest 建议创建一个独立的启动脚本 if
  • 将 Rust 应用程序与不在运行时链接器搜索路径中的动态库链接

    我有一个共享库 我想将其动态链接到几个单独的二进制 Cargo 应用程序 我使用以下命令将其位置包含在链接器中 L path to dir格式并且应用程序可以正确编译 并且我期望二进制大小显着减小 但是 当使用检查生成的二进制文件时ldd
  • 查找两个列表相同的从 1 开始的位置

    挑战在于编写一个函数来比较两个相当小的整数列表 每个列表大多少于 10 个元素 一个列表可能类似于 self 0 0 1 2 要与之比较的列表可能类似于以下示例之一 other1 other2 0 0 1 other3 0 0 1 2 0
  • 将输出写入打开 exe 的目录

    我有一个表格exe 现在单击按钮我希望它将文件保存到打开它的位置 例如如果我给这个exe给您 您将其复制到 C 盘文件夹名称 la la 然后将文件保存到 C 盘文件夹名称 la la 目前我正在尝试这个可行的方法 但我不希望它再提供目录路
  • 错误“框架不在模块中。”在 Xamarin.Forms - Android 项目中

    每当涉及到这一行时 就会出现以下错误 using var client new HttpClient var json await client GetStringAsync http mvalivros azurewebsites net
  • 使用 Docker 和 PHP 从 env 文件加载环境变量

    如何使用 Docker 文件中设置的 dotenv 变量传递给 Php 应用程序 最近尝试使用带有一组键配对值的 env 文件来跨不同的配置文件使用 但注意到 Docker Wordpress 映像并不容易设置 虽然在节点等中设置起来相当简
  • 如何判断PDF是横向还是纵向

    有没有工具可以确定 PDF 是横向还是纵向 我目前看过pdfbox and Itext为此 但似乎我找不到它 请告知他们是否支持这一点 使用提取 PDF 页面信息Origami提供的信息是 pdf 页面有一定程度的旋转 以下是 Origam
  • 在项目模板中包含对我自己的程序集的引用的最佳方法是什么?

    我们已经用 C 开发了一个库 现在我希望创建一个项目模板来帮助正确使用该库 我希望新项目包含对库程序集的引用 但不希望将程序集部署到 GAC 或者依赖于驻留在某个特定位置的程序集 我的想法是将 dll 包含在项目模板 zip 文件中 这意味
  • NVelocity 找不到模板

    我在 ASP NET MVC 应用程序中使用 NVelocity 时遇到一些困难 我用它作为生成电子邮件的一种方式 据我所知 我传递的详细信息都是正确的 但它无法加载模板 这是代码 private const string defaultT
  • 如何在 Electron 框架中使用登录事件?

    我需要一些帮助来理解如何Event login Electron 框架中的功能有效 它是浏览器中常见的密码自动填充 记住密码功能的低级实现吗 我想用它来自动填充网页登录流程中的密码 例如 const electron require ele
  • 如何使用 Selenium2Library 在机器人级别向 chromedriver 添加扩展

    我想在我的机器人套件设置中实例化 chromedriver 实例 但我需要在浏览器启动时安装扩展 通过简单地将 chromeoptions 添加到我的 webdriver 实例中 我可以轻松地在 Python 级别执行此操作 但我需要在机器
  • 在 c 中将数组转换为结构体,反之亦然

    令其为以下结构 typedef struct int x int y st 我可以将 int 数组 转换 为 struct st st z int t 2 t 0 0 t 1 1 z st t printf d d n z x z y 那么