C sharp - Trabajo con punteros en C#

 
Vista:

Trabajo con punteros en C#

Publicado por Felipe De Andrés (1 intervención) el 21/08/2017 11:47:41
Hola buenas.
Llevo unos años usando Visual C# 2005 (me veo obligado a usar esta vieja versión por compatilibidad con antiguas máquinas).

Tengo que leer unos datos por puerto serie usando la sentencia read.

El principal parámetro de esta función es el buffer del tipo vector de bytes. Pongamos que tengo que leer 16 bytes. Estoy 16 son en realidad 4 float en formato IEEE (vamos los float de c#).

Nunca he usado punteros en c#. Suponiendo un código del tipo del siguiente, ¿como puedo tener acceso a los datos float?

1
2
3
4
byte[] misBytes;
float[] misFloats;
miPuertoSerie.Write (cdmPedirDatos);
miPuertoSerie.Read (misBytes, 0, 16);

He estado leyendo un poco pero no me aclaro demasiado (unsafe, free, reserva de memoria).

Alguien me ayuda por favor.

Como puedo hacer que las dos variables compartan dirección de memoria o copiar el bloque de 16 bytes a donde están los Float. He intentado varias formas pero todas me dan problemas aun teniendo declarado el procedimiento como unsafe.


Un Saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Trabajo con punteros en C#

Publicado por David (60 intervenciones) el 26/08/2017 10:20:31
La clase BitConverter.ToSingle es tu solución.
Tan sólo parte tu array de bytes en 4 y usas BitConverter
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar