C# LanguagePunteros


Observaciones

Punteros e unsafe

Debido a su naturaleza, los punteros producen código no verificable. Por lo tanto, el uso de cualquier tipo de puntero requiere un contexto unsafe .

El tipo System.IntPtr es una envoltura segura alrededor de un void* . Está pensado como una alternativa más conveniente para void* cuando no se requiere un contexto inseguro para realizar la tarea en cuestión.

Comportamiento indefinido

Al igual que en C y C ++, el uso incorrecto de los punteros puede invocar un comportamiento indefinido, con posibles efectos secundarios como corrupción de la memoria y ejecución de código no deseado. Debido a la naturaleza no verificable de la mayoría de las operaciones de puntero, el uso correcto de los punteros es responsabilidad exclusiva del programador.

Tipos que soportan punteros

A diferencia de C y C ++, no todos los tipos de C # tienen los tipos de punteros correspondientes. Un tipo T puede tener un tipo de puntero correspondiente si se aplican los dos criterios siguientes:

  • T es un tipo de estructura o un tipo de puntero.
  • T contiene solo miembros que satisfacen estos dos criterios recursivamente.

Punteros Ejemplos relacionados