重铸 *void 函数参数

2023-12-23

我发布了一个问题here https://stackoverflow.com/questions/8434884/nlopt-with-armadillo-data早些时候,我想我可以回答是否有人可以帮助我解决以下问题:

我有一个函数

double func(void* data)

我想传递一个对象或结构。 (在我的例子中,是一个犰狳矩阵,甚至只是一个 std::vector )。

如何将指向对象的指针作为参数传递给 func(),然后,一旦进入 func(),如何将 void 指针重新转换为其原始类型?

Edit:这就是最终的工作结果,其中 mat 是犰狳矩阵类:

mat A(2,2);
A << 1 << 2 << endr << 3 << 4; // A=[1,2; 3,4]
func(&A);

并在函数中:

double func(void* data) {
   mat* pB = (mat*)(data);
   mat B = pB[0];
}

矩阵 B 和 A 现在包含相同的数据。


如果我理解正确的话,你需要这样的东西。

double func(void* data_v) {
  struct my_type * data = data_v;
}

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

重铸 *void 函数参数 的相关文章

  • void* 字面意思是float,如何转换?

    所以我在我的 C 应用程序中使用这个 C 库 其中一个函数返回 void 现在我对纯 C 不是最敏锐的 但听说 void 可以转换为几乎任何其他 类型 我还知道我期望在这个函数的末尾有一个浮点数 所以我将 void 转换为 float 并取
  • 错误:从“void*”转换为“int”会丢失精度

    我有一个带有原型的函数void myFcn void arg 它用作 pthread 的起点 我需要将参数转换为 int 以便以后使用 int x int arg 编译器 GCC 版本 4 2 4 返回错误 file cpp 233 err
  • 需要显式转换以指向 void 指针[重复]

    这个问题在这里已经有答案了 我有以下函数签名 int foo void 我试图给它一个指向char指针 即char 我的编译器抱怨以下警告 argument of type char is incompatible with paramet
  • 如何通过void指针访问成员

    首先尝试编写一个小程序将基本算术翻译成英语 最后我构建了一个二叉树 这不可避免地非常不平衡 来表示求值的顺序 首先 我写了 struct expr typedef struct unsigned char entity flag posit
  • 从 void ** 到 char ** 的转换有多危险

    所以我们知道标准并不强制指针大小相等 here https stackoverflow com questions 1241205 are all data pointers of the same size in one platform
  • 除了调用全局删除运算符之外,删除 void 指针还能做什么?

    C 标准非常清楚明确地指出使用delete or delete on a void 指针是未定义的行为 如中引用的这个答案 https stackoverflow com a 941959 1858225 这意味着不能使用类型的指针删除对象
  • C++ 中的 void 指针是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 什么是void指针 什么是空指针 https stackoverflow com questions 4334831 what is a void pointer and what is a null
  • 不同函子的容器

    我正在尝试找出一种方法来拥有函子容器 以便我可以将值传递给函子并对其进行修改 但是我无法让函子不受可以传递的类型和他们可以接受的论据数量 我对此的实际用途是我有一系列函子 它们都根据输入以某种方式更改 3D 向量 通过能够将这些函子存储在容
  • 动态空指针数组

    我正在尝试创建一个基于动态数组的动态集抽象数据类型 但是 当我尝试将数据添加到数组时 我收到编译器警告和错误 它们是 警告 取消引用 void 指针 默认启用 错误 void 表达式的使用无效 我的代码如下 我用注释标记了有问题的行 str
  • c/c++中void指针的用法

    嘿 我想知道如何在现实世界中应用空指针来使软件更安全 更灵活 例如 我知道 void 指针 它将转换到什么指针对外部是隐藏的 这将使软件更安全 您使用 void 指针还有其他原因吗 空指针不会使软件变得更安全 在 c 中使用 void 的原
  • C 中使用 void 指针的通用列表

    我正在尝试创建一个允许输入任何类型的通用列表 但是 我在 is element of 函数中的比较方面遇到问题 因为我正在使用 void 指针 有什么帮助吗 typedef struct Item void data Item typede
  • 当我知道每个元素的大小时,如何从 void 指针获取项目?

    当我想出于教育目的编写自己的快速排序时 它就出现了 这就是我得到的 qsort void array int count int size int compare const void const void 我有数组中每个元素的大小 以及指
  • 释放空指针

    如何释放空指针 struct vStruct void vPtr struct vStruct next struct vStruct sObj struct vStruct sObjNew sObj delete sObjNew gt v
  • 避免空指针

    我正在用 C 11 实现我自己的编程语言 我设计的数据类型之一是Token班级 它旨在存储从源文件读取的标记 以及标记的内容 类型以及遇到的行 令牌可以是单字符符号 长字符串 数字或名称 因此它需要能够存储不同的数据类型 可以是用于符号的字
  • 在c++中处理对象

    有人告诉我 句柄是一种 空 指针 但 空指针 到底是什么意思以及它的目的是什么 另外 什么是 somehandle GetStdHandle STD INPUT HANDLE do 一般意义上的句柄是唯一标识对象的不透明值 在这种情况下 不
  • Objective-C 变量...指向自身?

    我在 Apple 的一些用于处理键值观察的示例代码中发现了这种构造 添加观察者时 您可以添加一个上下文 以 void 变量的形式 该上下文可以唯一标识 KVO 调用 如果您希望多个 KVO 调用触发相同的操作 则特别有用 因为单个上下文可以
  • 除了内存分配相关的东西之外, void* 是否是必需的

    Is void 除了C 中与内存分配相关的东西之外还有必要吗 你可以给我一个例子吗 记录内存地址 如果你想使用 iostreams 输出指针 例如用于日志记录 那么通过void 是确保的唯一方法operator lt lt 并没有以某种疯狂
  • 多重继承:从 void * 转换为第二个基类后出现意外结果

    我的程序需要使用 void 来在动态调用情况下传输数据或对象 以便它可以引用任意类型的数据 甚至原始类型 然而 我最近发现 在具有多个基类的类的情况下 向下转换这些 void 的过程会失败 甚至在调用这些向下转换的指针上的方法后使我的程序崩
  • reinterpret_cast 为 void* 是否合法

    我在看https en cppreference com w cpp language reinterpret cast https en cppreference com w cpp language reinterpret cast我注
  • 为什么删除void*是UB而不是编译错误?

    为什么要通过删除对象void 是未定义的行为 而不是编译错误 void foo void p delete p 这段代码编译并生成代码 尽管有关于 gcc 和 clang 的警告 令人惊讶的是 ICC 没有给出警告 2 5 warning

随机推荐

  • WPF 中的 OpenGL 控件 - 如何操作?

    我需要在我的 WPF 项目中使用 OpenGL 我希望它的安装尽可能简单 但我开始失去希望 我试过了SharpGL 它非常好且易于使用 但它存在大量内存泄漏 并且应用程序在几秒钟后崩溃 不是很有用 所以现在我想知道 这个库有替代方案吗 实际
  • 如何在运行浏览器化脚本之前设置 process.env?

    最初的html来自后端 服务器有一个定义的process env NODE ENV 以及其他环境变量 浏览器化的代码是建造一次 and 在多个环境上运行 staging production等 因此不可能将环境变量内联到浏览器化脚本中 通过
  • 如何在 will_paginate gem 中进行无限滚动

    我正在尝试无限滚动 但我不知道为什么它不起作用 allposts html erb 部分 div class iterate div 职位控制器 class PagesController lt ApplicationController
  • 代码行数旁边的垂直线是什么

    这些线到底是用来做什么的 扩展程序的名称是什么 这些行表示文件中的更改 蓝线表示修改 修改了代码行 绿线表示添加 添加了代码行 红线表示删除 删除了代码行 它们是通过版本控制系统 VCS 扩展 例如 Git 添加的 您可以在上面找到具有相似
  • 基于类和基于对象的语言比较(ECMAScript 规范)

    In a class based object oriented language in general state is carried by instances methods are carried by classes and in
  • 从 MVC 项目访问类库?

    我在一个解决方案中有一个类库项目和 MVC 项目 我的类库具有命名空间 MyStuff Classes 我的 MVC 项目具有命名空间 MyStuff Web 我似乎无法从 mvc 项目访问我的类库 反之亦然 直接或使用 using 指令
  • iPhone 5 的弱光增强模式

    有谁能够在他们的自定义相机应用程序中使用 iPhone 5 的新低光增强模式吗 我尝试了以下代码 但发现没有任何区别 而本机相机应用程序显着提高了亮度 if captureManager backFacingCamera isLowLigh
  • 微服务架构中如何在微服务之间共享java模型

    我正在设计新应用程序的架构 我选择了微服务架构 在我的架构中 我注意到我有不同微服务使用的模型 我想知道是否有一种方法可以在微服务之间共享模型代码 而不是在每个微服务中编写它们 顺便说一句 我正在为我的应用程序使用 spring boot
  • PHP $_POST 数组用于未选中的复选框

    如果我有一个带有两个复选框的表单 它们具有与 name 属性相同的数组 名称 1 1 这些复选框都没有被勾选 我有什么方法可以知道它们存在于表单中吗 如果未选中这些字段 则不会通过 POST 数组发送这些字段 我问这个是因为这些名称值是动态
  • 更改 SQL Server 2005 中数据库图表的所有者

    我需要更改 SQL Server 2005 中数据库图表的所有者 目前它归我所有 domain username diagramName 我想将其更改为 dbo dbo diagramName 所有 我以为我可以使用 sp changeob
  • 如何从 php 脚本设置 cron 作业?

    我是 cron 工作的新手 我研究了一些有关 cron 作业的基础知识 我可以使用 cron 选项卡调用 php 通过在 etc crontab 中使用以下命令 10 root usr bin php var www PATH TO SCR
  • d3.js:将匿名函数作为参数传递给居中力?

    我正在制作一个交互式气泡图 并且正在研究将数据分为两组并移动到屏幕两侧的功能 我在模拟中使用了居中力 因为我认为它比使用forceX 和forceY 能提供更好 更一致的数据显示 但是 我在分割数据时遇到了麻烦 我的想法是 由于您可以将匿名
  • 背景颜色项目组合框 WPF

    我正在做一个 WPF 并有一个组合框 其中包含计算机上可用端口的列表 我想改变这些物品的颜色 我的组合框是这些
  • Grails - 仅供对象所有者访问

    我仍在开发我的第一个 Grails 应用程序 这次 我的问题是限制特定用户对某些操作的访问 假设用户添加一些对象 例如图书 我想仅向管理员和添加书籍的用户授予编辑书籍的权限 我目前正在使用 Acegi 插件 我知道该插件有更新版本 但我不确
  • 如何在 Swift 中编写多行字符串?

    如何将字符串拆分为多行 如下所示 var text String This is some text over multiple lines Swift 4 支持多行字符串文字 https github com apple swift ev
  • Akka actor 使用 Scala 进行单元测试

    我对 Scala 还很陌生 所以请保持温柔 在我当前正在构建的应用程序中 我正在使用 Akka Actor 并且我想编写一些单元测试 我遇到了这个为 Akka Actor 编写单元测试的官方文档 http doc akka io docs
  • 一起使用的 HTML 和 CSS 是否良好?

    最好的使用方法是什么
  • 这段代码真的可以对抗 SQL 注入吗? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 终极清洁 安全功能 https stackoverflow com questions 4223980 php the ultimate clean secure function 我在这里找
  • 无法在python3中安装boto

    我正在尝试从源代码 pypi 安装 boto 但无法使用 python 3 2 安装它 为什么会失败 c boto gt Python32 python exe setup py install Traceback most recent
  • 重铸 *void 函数参数

    我发布了一个问题here https stackoverflow com questions 8434884 nlopt with armadillo data早些时候 我想我可以回答是否有人可以帮助我解决以下问题 我有一个函数 doubl