Why Trust Techopedia

What Does Unsafe Mean?

Unsafe is a C programming language (C#) keyword used to denote a section of code that is not managed by the Common Language Runtime (CLR) of the .NET Framework, or unmanaged code. Unsafe is used in the declaration of a type or member or to specify block code. When used to specify a method, the context of the entire method is unsafe.


Unsafe code provides good interoperability with unmanaged application programming interfaces (API) or system calls and serves as a compatible interface for third-party dynamic link libraries (DLL), which require pointers for parameter passing. Unsafe code also may be used during debugging, when process content requires inspection or analysis.

Techopedia Explains Unsafe

Unsafe data refers to allocated memory data that is not controlled by the CLR, such as Windows’ handles or pointers allocated via a new method.

Unsafe code refers to a statement or method that accesses unmanaged memory, including:

  • Calls to Windows APIs
  • Calls to Component Object Model (COM) method interface components involving structures with pointers or performance critical code.

Unsafe code is primarily used when operations involve pointers and, generally, when code is executed outside of the managed context. Unsafe code compilation requires specification of the “/unsafe” option with the compilation command.

In fully trusted environments, CLR is required for unsafe code execution. However, CLR does not verify unsafe code. CLR supports unsafe code to provide direct access to unmanaged memory code, which is sometimes preferred for performance reasons.

Because CLR maintains type safety and security, C# does not support pointer arithmetic in managed code, unlike C/C++. The unsafe keyword allows pointer usage in unmanaged code. However, safety is not guaranteed because strict object access rules are not followed. For example, pointer operation capabilities are not provided in Java Runtime Environment (JRE).

Unsafe code can create issues with stability and security, due to its inherent complex syntax and potential for memory related errors, such as stack overflow, accessing and overwriting system memory. Extra developer care is paramount to averting potential errors or security risks.


Related Terms

Margaret Rouse
Technology Expert
Margaret Rouse
Technology Expert

Margaret is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages.