Предупреждение компилятора (уровень 4) C4130
"оператор": логическая операция с адресом строковой константы
Использование оператора с адресом строкового литерала создает непредвиденный код.
Следующий пример приводит к возникновению ошибки C4130:
// C4130.cpp
// compile with: /W4
int main()
{
char *pc;
pc = "Hello";
if (pc == "Hello") // C4130
{
}
}
Инструкция if
сравнивает значение, хранящееся в указателе pc
, с адресом строки Hello, которая выделяется отдельно при каждом возникновении строки в коде. Оператор if
не сравнивает строку, на которую указывает pc
строка Hello.
Для сравнения строк используйте функцию strcmp
.