问题标签 [unsafe-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# - 我应该用 C/C++ 重写我的 DSP 例程还是我擅长 C# 不安全指针?
我目前正在编写一个 C# 应用程序,该应用程序执行大量数字信号处理,其中涉及许多小型微调内存 xfer 操作。我使用不安全指针编写了这些例程,它们的性能似乎比我最初想象的要好得多。但是,我希望应用程序尽可能快。
我会从用 C 或 C++ 重写这些例程中获得任何性能优势,还是应该坚持使用不安全的指针?我想知道与 C/C++ 相比,不安全指针在性能方面带来了什么。
编辑:我在这些例程中没有做任何特别的事情,只是普通的 DSP 东西:缓存友好的数据从一个数组传输到另一个数组,其中有很多乘法、加法、位移等。我希望 C/C++ 例程看起来与 C# 对应的例程几乎相同(如果不相同)。
编辑:非常感谢大家所有聪明的答案。我了解到,除非进行某种 SSE 优化,否则仅通过直接移植不会显着提高性能。假设所有现代 C/C++ 编译器都可以利用它,我期待着尝试一下。如果有人对结果感兴趣,请告诉我,我会在某处发布。(虽然可能需要一段时间)。
c# - 锁定 C# 位图中的矩形时锁定指针
这可能是以下未回答问题的重复:
我以以下方式锁定图像:
在处理部分,我在 Y 方向上逐步遍历 ClipRectangle 中的像素。然而,一个应该是有效的像素返回一个内存访问错误,说我不能取消引用指针。
例如,在 704x600 图像中使用:
像素(128x321)
应该是有效的。通过手动输入数学以在中间窗口中获取该像素,我得到以下信息:
步幅是 704,我的软件中的逻辑将确切的指针位置作为中间窗口,所以一切看起来都是正确的。可以很好地取消引用 290-320 的 Y 像素。如果我改为锁定整个位图,我的所有逻辑都可以正常进行,但我怀疑我是否得到了正确的像素,或者如何在 LockBits 中使用锁定矩形。
当我只锁定我需要的区域时,为什么我无法访问 BitmapData 中预期的锁定像素?
c# - 在一个语句中取消引用和提前指针?
我从一个字节数组中读取如下:
如果我错了,请纠正我,但 ++ 优先于 *,因此可以在同一语句中组合 *i 和 i++ 吗?(例如 *i++)
(这在技术上是不安全的 C#,而不是 C++,p 是一个字节*)
c# - 在指向整数的指针数组上动态设置值
我有一个指向整数(未知等级)的多维指针数组被传递到我的函数中:
指针的多维数组在方法之外被构造并被传入。下面是一个例子:
如何在数组中运行时计算的索引处设置值?Array.SetValue(...) 适用于非指针数组,但拒绝适用于我的 int* 数组。使用反射器,我看到 SetValue 减少到调用 InternalSetValue ,它接受一个对象作为值,但它被标记为 extern 并且我看不到实现。我在黑暗中开了一枪,并尝试传递盒装指针,但没有运气。
c# - 如何在C#中从指针读取字符串到缓冲区
如何从此 C++ dll 调用中读取 C# 中的错误字符串?
谢谢!
c# - 从网络位置运行符合“允许不安全代码”设置的 C# 应用程序
我的 C# 应用程序使用指针,因此使用“允许不安全代码”设置进行编译。我知道从网络位置运行这样的应用程序非常困难或根本不可能。(或者有没有办法运行它??)我想知道的是,有没有办法处理错误尝试从网络位置运行此应用程序并使应用程序正常失败时会发生这种情况。我收到以下错误...“应用程序遇到问题需要关闭”。异常信息包含以下代码:0xe0434f4d
c++ - 声明类的全局对象后系统崩溃
我对 C++ 很陌生。我在执行以下操作时遇到系统崩溃(不是编译错误):
我正在声明类的全局指针。
在这堂课中,我正在从 XML 文件中读取标签。当此指针用于检索值时,系统会崩溃。我正在为verifone终端进行编码。
getreferencesetting() 是类EftBarclaysGiftConfig的成员函数
在这种情况下,我对指针的行为感到困惑。我知道我做错了什么,但无法纠正。
当我在本地声明一个类对象时,它会正确检索该值。
但是,如果我将此对象声明为全局对象,它也会使系统崩溃。
我需要在我的代码中的不同位置获取值,所以我不得不使用全局的东西。
如何纠正这个问题?
c# - 在类中分配整数的引用
是否可以在类初始化时将整数作为引用传递并确保引用安全?
我可以使用指针,但是我需要一个不安全的上下文。
c++ - 具有未初始化指针的类是否具有未定义的行为?
这是一个有效的类(是的,它可以编译)?如果在取消引用之前为 ptr2Int 分配了一个值,那么该类是否可以保证按预期工作?
c# - 如何转换列表到 C# 中的字节 []
从 Double[] src 到 Byte[] dst 的转换可以在 C# 中通过固定指针有效地完成:
我怎样才能对 List src 做同样的事情?即如何获得指向 List 中包含的数组 Double[] 的固定指针?谢谢。