问题标签 [void-pointers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++-cli - void* 到 C++/CLI 中的 Object^
我正在将大量 .h 和 .lib 文件从本机 C++ 包装到托管 C++ 以最终用作 C# 中的引用 .dll。
一些本机 C++ 函数的返回类型为 void*。当我将值传回我的调用代码时,我不确定如何处理这个问题。例如:如果 C# 应用程序调用我的 dll 包装器,我从本机调用返回什么:
我目前正在尝试将返回装箱在通用 System::Object^ 中,但没有成功。这是包装器中的调用:
任何人都可以提供解决方案吗?
c - C: 通过 void 返回的函数 *
来自 Java,我对使用 Void 允许以下返回值感到困惑:
这是返回一个指向分配内存的指针吗?
objective-c - Objective-C: id 和 void * 的区别
id
和 和有什么不一样void *
?
c - 如果我有一个 void 指针,如何将 int 放入其中?
我有一个任意值的数组,所以我将它定义为一个 void 指针数组,所以我可以指向任何类型的信息(如int
字符数组等)。但是,我如何实际分配int
给它?
以这些初始化为例:
我的直觉会这样认为,但这会产生编译错误:
我也考虑过使用&x
,但我会获取一个局部变量的地址,(据我所知)在退出过程后会被清除。因此,如果我有一个局部变量x
,我将如何正确地将其转换为 void 指针类型的变量?
c - 错误:从 'void (*)(...)' 到 'void (*)()' 的无效转换
在使用 gcc 4.0.1 build 5370、XCode 2.5 的 Mac 上遇到此问题。代码片段是:
有一个声明的函数,第二个参数导致问题:
像这样称呼它:
导致第三行的错误。看起来 'void func(void)' 与 gcc 4.0.1 的 'void func()' 不同
关于任何 gcc 开关或只是 gcc 更新的任何想法都会有所帮助吗?感谢Honza B的帮助。
c++ - 错误:从 'void*' 转换为 'int' 失去精度
我有一个带有原型的函数,void* myFcn(void* arg)
它用作 pthread 的起点。我需要将参数转换为 int 以供以后使用:
编译器(GCC 版本 4.2.4)返回错误:
投射这个的正确方法是什么?
c# - 实现 Win32 FileWrite
我通过带有签名的 Write(..) 方法来实现这一点:
正如我通过查看本文了解到的(讨论了读取对应项的使用),我需要在我的代码中实现一个 while 循环,因为缓冲区的写入/读取可能不会一次性完成。这是问题开始的地方:
如果我想保留我的 C# 方法签名以接受 void*,这与链接的读取示例不同,其中字节 * 被接受为缓冲区的参数。
这意味着在通过 WriteFile 一次之后,我应该将我的 void* 移动到尚未写入的缓冲区的开头。我显然不能通过仅使用包含写入字节数的 uint 增加 void* 来做到这一点......我知道 void* 没有预定的大小,因此增加是不可能的,但我想知道我应该如何实现我正在努力做。
c# - 指针算法和 C# 编译器
为了学习,我最近查看了一个使用 Win32 WriteFile 的现有程序集(使用 Reflector)。实现是:
}
实际上是最后两行有问题......首先,编译器抱怨您不能将 uint 强制转换为 void*。此外,不可能在 void* 上使用 += 甚至 + ,因为它的大小未知。
上面的代码确实有效,但最后几行仍将编译为:
我不明白为什么并且非常想知道为什么编译器会以这种方式运行:
- 为什么它会生成这样的演员表(为什么不接受在用户编写的代码中这样做)?
- 第一个示例中 void* 上的 += 运算符是怎么回事?哪些原始代码代码生成了缓冲区 += (void*)wrtn 其中缓冲区也是 void* ????
c++ - 找出 C++ 空指针的类型
我有一个小问题:如何找出 C++ 指针的类型?
我经常在我的控制台程序中使用一个小函数来收集输入,它看起来像这样:
我想创建一个通用表单,使用 void 指针,但我不能 cin 一个 void 指针,那么如何找出它的类型以便我可以转换它?
c - C: 深拷贝 - 带有 void 指针的结构
我有一个以下结构
是否可以对包含 void 指针的结构进行深层复制?我假设我不知道data
指针指向多少字节?所以我不能 malloc 指定的字节数并做 memcpy。我对吗?