Como empacotar uma string C ++ de comprimento desconhecido para C # usando seu ponteiro?

Estou tentando empacotar uma matriz de caracteres alocada dinamicamente em uma estrutura para c #. A estrutura possui um ponteiro para a matriz. O problema é que a matriz de caracteres contém várias seqüências terminadas nulas e a última sequência é finalizada por dois caracteres nulos consecutivos.

Se eu tentar ordená-lo comoLPStr Receberei apenas a primeira string na "lista".

Tentei usar UnmanagedMemoryStream, mas é necessário saber o comprimento da matriz.

Existe uma maneira de ler os bytes como um fluxo sem saber o comprimento da matriz? (Além de usar um buffer de bytes de comprimento n e continue aumentando o ponteiro até que dois caracteres de terminação nulos consecutivos sejam encontrados).

questionAnswers(2)

yourAnswerToTheQuestion