Domanda

Io sto giocando con Pex e uno dei parametri con cui si passa nel mio metodo è "\0".

Che cosa significa?La mia ipotesi è una stringa vuota ("") in base al contenuto del mio metodo.Tuttavia, se è lo stesso allora perché non usare "" invece di "\0"?

Qualcuno sa di cosa si tratta?

È stato utile?

Soluzione

'\ 0' è un " carattere null ". E 'usato per terminare stringhe in C e alcune porzioni di C ++. Pex sta facendo un test per vedere come il vostro codice gestisce il carattere nullo, probabilmente cercando la Veleno Null sicurezza byte exploit.

La maggior parte del codice C # non ha nulla da temere; se si passa la stringa di codice non gestito, tuttavia, si possono avere problemi.

Modifica

Tanto per essere espliciti ... Pex sta passando una stringa contenente un carattere null. Si tratta di non un riferimento null.

Altri suggerimenti

E 'una stringa che contiene il carattere '\ 0'. C # non tratta questo in alcun modo particolarmente speciale - è solo caratteri Unicode U + 0000. Se si scrive:

int firstCodePoint = text[0];

allora troverete firstCodePoint è 0.

È una stringa con un carattere null.Anziani stringa librerie — come nel caso di C o più librerie C++, usa il '\0' carattere che indica la fine della stringa.

Nuovi ambienti .Netto di utilizzare un sistema diverso, ma c'è un sacco di storia circa la fine di una stringa '\0', tale che un comune punto di errore.Librerie di test come Pex la utilizzerà per assicurarsi che il programma gestisce in modo corretto.

Una stringa di lunghezza 1, contenente il carattere \ u0000 (aka NUL). Questo personaggio non è trattato in modo speciale.

In C, che usa \ 0 per terminare stringa, è anche assegnare una stringa di lunghezza 1. In questo caso le funzioni di stringa standard verranno segnalare una lunghezza di 0, poiché la stringa contiene \ 0 oltre ad essere terminato con esso . Si potrebbe tranquillamente modificare str [0], o strncat un singolo carattere in esso.

Escape Sequence  
\0    
Character Name 
Null    
Unicode Encoding     
0x0000

vedere il link.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top