¿Cómo ordenar una cadena C ++ de longitud desconocida en C # usando su puntero?

Estoy tratando de reunir una matriz de caracteres asignada dinámicamente en una estructura a C #. La estructura tiene un puntero a la matriz. El problema es que la matriz de caracteres contiene varias cadenas terminadas en nulo y la última cadena termina en dos caracteres nulos consecutivos.

Si trato de ordenarlo comoLPStr Obtendré solo la primera cadena en la "lista".

Intenté usar UnmanagedMemoryStream pero requiere conocer la longitud de la matriz.

¿Hay alguna forma de leer los bytes como una secuencia sin conocer la longitud de la matriz? (Además de utilizar un búfer de bytes de longitud n y seguir aumentando el puntero hasta que se encuentren dos caracteres de terminación nula consecutivos).

Respuestas a la pregunta(2)

Su respuesta a la pregunta