tagged [unsafe]

What is the difference between referencing a value using a pointer and a ref keyword

What is the difference between referencing a value using a pointer and a ref keyword I have the following code: ``` class Program { private unsafe static void SquarePtrParam(int* input) { *inp...

21 Mar at 09:28

Fast array copy in C#

Fast array copy in C# I have a C# class that contains an int[] array (and a couple of other fields, but the array is the main thing). The code often creates copies of this class and profiling shows th...

23 Apr at 15:27

How to use unsafe code in safe contex?

How to use unsafe code in safe contex? I need to use `SecureString` for a Microsoft's class and i found the following code on the [internet](http://blogs.msdn.com/b/fpintos/archive/2009/06/12/how-to-p...

Why can't generic types have explicit layout?

Why can't generic types have explicit layout? If one tries to make a generic struct with the `[StructLayout(LayoutKind.Explicit)]` attribute, using the struct generates an exception at runtime: > Syst...

4 Nov at 23:23

Which is faster - C# unsafe code or raw C++

Which is faster - C# unsafe code or raw C++ I'm writing an image processing program to perform real time processing of video frames. It's in C# using the Emgu.CV library (C#) that wraps the OpenCV lib...

Converting System.Decimal to System.Guid

Converting System.Decimal to System.Guid I have a big dictionary where the key is decimal, but the GetHashCode() of System.Decimal is disasterously bad. To prove my guess, I ran a for loop with 100.00...

6 Mar at 05:1

Faster (unsafe) BinaryReader in .NET

Faster (unsafe) BinaryReader in .NET I came across a situation where I have a pretty big file that I need to read binary data from. Consequently, I realized that the default BinaryReader implementatio...

C# default value of a pointer type

C# default value of a pointer type I have been searching through the C# language spec and I can't find anything which says whether a pointer type (e.g. `int*`) gets initialized with a default value. I...

17 Dec at 16:20

Does it make any difference to use unsafe inside or outside a loop?

Does it make any difference to use unsafe inside or outside a loop? I never needed to use unsafe in the past, but now I need it to work with a pointer manipulating a bitmap. I couldn't find any docume...

29 Jan at 04:17

C# interop: bad interaction between fixed and MarshalAs

C# interop: bad interaction between fixed and MarshalAs I need to marshal some nested structures in C# 4.0 into binary blobs to pass to a C++ framework. I have so far had a lot of success using `unsaf...

17 Mar at 23:17

I can seem to get msbuild to build unsafe code blocks

I can seem to get msbuild to build unsafe code blocks `msbuild` doesn't seem to allow me build `unsafe` blocks even though my `.csproj` specify: my build command is: ``` msbuild myProject.sln /p:Confi...

17 Aug at 09:8

Unsafe code won't compile on Visual Studio 2015

Unsafe code won't compile on Visual Studio 2015 I'm trying to compile a program on the new DNX4.6 core, but it won't compile due to: `error CS0227: Unsafe code may only appear if compiling with /unsaf...

10 Mar at 16:10

Why does this code work without the unsafe keyword?

Why does this code work without the unsafe keyword? In [an answer](https://stackoverflow.com/questions/791498/how-to-steal-private-data-in-net/791506#791506) to his own [controversial question](https:...

23 May at 11:53

How to test handling of AccessViolationException

How to test handling of AccessViolationException I need to write a test which verifies that my code can handle an AccessViolationException (or any other WIN32 Corrupted State Exception - CSE), which o...

23 May at 11:54

LayoutKind.Sequential not followed when substruct has LayoutKind.Explicit

LayoutKind.Sequential not followed when substruct has LayoutKind.Explicit When running this code: ``` using System; using System.Collections.Generic; using System.Linq; using System.Text; using System...

Keep a TypedReference alive out of method block without returning it

Keep a TypedReference alive out of method block without returning it I want to premise that this question's purpose is checking if there's at least one way, even if through the most unsafe hack, to ke...

23 May at 12:16

Safe vs Unsafe code

Safe vs Unsafe code Read [this question](https://stackoverflow.com/questions/2760564/why-is-my-unsafe-code-block-slower-than-my-safe-code) today about safe and unsafe code I then read about it in [MSD...

23 May at 12:16

How to get char** using C#?

How to get char** using C#? I need to pass an argument to an unsafe DllImported function in the form of: I'm assuming it's an array of strings. However when I try to do the following, I get 'Cannot co...

23 May at 12:17

Is GC.KeepAlive required here, or can I rely on locals and arguments keeping an object alive?

Is GC.KeepAlive required here, or can I rely on locals and arguments keeping an object alive? I have a bunch of methods that take the WPF's `WriteableBitmap` and read from its `BackBuffer` directly, u...

23 May at 12:27

Pointer offset causes overflow

Pointer offset causes overflow The following results don't make any sense to me. It looks like a negative offset is cast to unsigned before addition or subtraction are performed. ``` double[] x = new ...

26 Mar at 18:22

How to run unsafe code in "visual studio code"?

How to run unsafe code in "visual studio code"? I am using Visual studio code and when I try to run an unsafe code it throws the following error ""message": Unsafe code may only appear if compiling wi...

1 Jun at 07:5

Why is casting a struct via Pointer slow, while Unsafe.As is fast?

Why is casting a struct via Pointer slow, while Unsafe.As is fast? ## Background I wanted to make a few integer-sized `struct`s (i.e. 32 and 64 bits) that are easily convertible to/from primitive unma...

15 Jun at 14:4

Getting pointer for first entry in an array

Getting pointer for first entry in an array I want to get pointer of first entry in the array. This is how I tried Get following compilation error. Any ideas how to fix it? > You can only take the add...

15 Jun at 23:48

C# Using span with SocketAsyncEventArgs

C# Using span with SocketAsyncEventArgs I would like to use new Span to send unmanaged data straight to the socket using `SocketAsyncEventArgs` but it seems that `SocketAsyncEventArgs` can only accept...

6 Sep at 19:36

C# Bitmap image masking using unsafe code

C# Bitmap image masking using unsafe code I'm using the following code to make image masks in C#: ``` for(int x = 0; x

27 Aug at 06:17