问题标签 [intptr]
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# - 每次分配/取消分配 IntPtr (AllocHGlobal) 还是保留它更好?
我有一种情况,我在我经常使用的函数(可能每秒 30 次)上使用 AllocHGlobal(总是大小相同),在我调用 FreeHGlobal 的函数结束时
如果我保留使用 AllocHGlobal 分配的内存部分并在类 Dispose 时释放它,或者我应该在每次调用函数时分配/释放它会更好吗?
我不知道这个内存在 c# 中的表现如何,对我来说这是一个“新世界”
c# - 处理 IntPtr 数组
我想我已经接近了,我敢打赌解决方案是愚蠢的。
我有一个 C++ 本机 DLL,在其中定义了以下函数:
基本上,给定一个文件路径,此函数创建一个字节数组 (BYTE*) 列表,并应通过数据参数返回一个指针列表。每个指向不同的字节数组。
我想从 C# 传递一个 IntPtr 数组,并能够按顺序编组每个单独的数组。这是我正在使用的代码:
问题出在我的 C++ 代码中。当我分配 *(data + i * sizeofarray) = pByte; 它破坏了指针数组......我做错了什么?
更新: 刚开始创建一个新的解决方案来隔离概念,并且已经发现了一些非常奇怪的东西。看一看:
C# 代码
C++ 代码
在调用本机代码之前,pList 有 10 个 IntPtr.Zero 元素。从本地调用返回后,它只有一个......出了点问题......如果我将 void** 替换为 BYTE** 也会发生
c# - 外部函数中的 default(IntPtr) 合法吗?
假设我有以下签名:
我想让它使用默认值:
这是有效的吗?在 C++ 中,我会使用指针为 0 或 null。在 C# 中,甚至不清楚 IntPtr 是值还是引用。
如果我手动调用我的函数,我会使用External(10, IntPtr.Zero);
. 我想我的问题是:default(IntPtr)
会有相同的行为IntPtr.Zero
吗?
c++-cli - 什么是intptr?
我不明白什么是 IntPtr,有人可以解释一下吗?谢谢
c# - 如何在 C# 中从 IntPtr 获取字节 []
我想将 a 传递IntPtr
给在 c# 中采用byte[]
Parameter 的方法。这可能吗?如果可能的话,我该怎么做?
谢谢
c# - 指向 3d 数组的指针
我有一个 3D 数组,我想IntPtr
指出它,所以在这里我做了什么......谁能告诉我它是否正确......
请注意,myvolume 的尺寸为 200 x 100 x 100
c# - C# 如何从 IntPtr 获取 Byte[]
我有一个有委托的 .dll(不是我自己的)。此委托回调函数为:
“CallBackFN(ushort opCOde, IntPtr payload , uint size, uint localIP)”
如何将 IntPtr 转换为 Byte[]?我认为有效载荷实际上是字节[]。如果不是 Byte[] 而是别的东西,我会丢失一些数据吗?
c# - 为什么我们不能在 C# 中进行 IntPtr 和 UIntPtr 算术?
这是一个看起来很简单的问题:
鉴于原生大小的整数最适合算术,为什么 C#(或任何其他 .NET 语言)不支持原生大小的算术IntPtr
和UIntPtr
?
理想情况下,您可以编写如下代码:
这样它就可以在 32 位和 64 位平台上运行。(目前,您必须使用long
.)
编辑:
我没有将它们用作指针(甚至没有提到“指针”这个词)!它们可以被视为native int
MSIL 和intptr_t
C中的 C# 对应物stdint.h
——它们是整数,而不是指针。
memory - IntPtr 导致内存泄漏?
这个函数是循环的。当我运行程序时,带有 IntPtr 的行给我带来了内存问题,我已经把 delete[],但它仍然没有解决内存问题,有人可以帮忙吗?谢谢
这是 C++\CLI