Pregunta

Estoy jugando con Pex y uno de los parámetros que pasa en mi método es "\0".

¿Qué significa eso? Mi conjetura es una cadena vacía ("") basado en el contenido de mi método. Sin embargo, si es la misma, entonces ¿por qué no usar "" en lugar de "\0"?

Alguien sabe lo que es?

¿Fue útil?

Solución

'\ 0' es un " carácter nulo ". Se utiliza para terminar las cadenas en C y algunas porciones de C ++. PEX está haciendo una prueba para ver cómo su código controla el carácter nulo, probablemente en busca de la veneno la seguridad de bytes explotar.

La mayor parte del código de C no tiene nada que temer; si se pasa a la cadena de código no administrado, sin embargo, es posible que tenga problemas.

Editar

Para ser explícita ... Pex está pasando una cadena que contiene un carácter nulo. Este es no una referencia nula.

Otros consejos

Es una cadena que contiene el carácter '\ 0'. C # no trata esto de ninguna manera particularmente especial - es sólo de caracteres Unicode U + 0000. Si se escribe:

int firstCodePoint = text[0];

A continuación encontrará firstCodePoint es 0.

Es una cadena con un carácter nulo. bibliotecas de cadenas de más edad - al igual que la utilizada en C o más librerías de C ++ - usaron el '\ 0' para indicar el final de la cadena.

ambientes

más nuevos como .Net utilizan un sistema diferente, pero hay un montón de historia en torno poniendo fin a una cadena con '\ 0', de manera que se trata de un punto de error común. Prueba de bibliotecas como Pex lo usará para asegurarse de que su programa maneja correctamente.

Una serie de longitud 1, que contiene el carácter \ u0000 (también conocido como NUL). Este personaje no se trata de forma especial.

En C, que utiliza \ 0 a finalizar la secuencia, también se asigna una cadena de longitud 1. En este caso, las funciones de cadena estándar reportarán una longitud de 0, ya que la cadena contiene \ 0, además de ser terminado con ella . Se podría modificar de forma segura str [0], o strncat un solo carácter en él.

Escape Sequence  
\0    
Character Name 
Null    
Unicode Encoding     
0x0000

ver este enlace.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top