Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ciąg "zmienna" może nie być zakończony zero.
Uwagi
To ostrzeżenie wskazuje, że funkcja, która wymaga ciągu o zerowym zakończeniu, została przekazana bez zera zakończony ciąg. Funkcja, która oczekuje ciągu bez zakończenia, może wyszukać zero poza końcem buforu. Ta usterka może spowodować błąd przekroczenia buforu możliwego do wykorzystania lub awarię. Program powinien upewnić się, że ciąg przekazany kończy się zerem.
Nazwa analizy kodu: MISSING_ZERO_TERMINATION2
Przykład
Następujący kod generuje to ostrzeżenie:
// Warning C6054_bad.cpp
// Compile using: cl /W4 /EHsc /c /analyze C6054_bad.cpp
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200] = { 'h', 'e', 'l', 'l', 'o' };
func(wcArray); // Warning C6054
}
Aby poprawić to ostrzeżenie, przed wywołaniem funkcji func()
null zakończwcArray
, jak pokazano w poniższym przykładowym kodzie:
// C6054_good.cpp
// Compile using: cl /W4 /EHsc /c /analyze C6054_good.cpp
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200] = { 'h', 'e', 'l', 'l', 'o', '\0' };
func(wcArray); // OK
}