как передать параметр в char *? - PullRequest
0 голосов
/ 19 июня 2020

Как и в приведенном ниже коде, я не могу передать этот параметр, как его исправить?

E0167 Аргумент типа «const char *» несовместим с типом «char *» параметр

Пример кода:

#include <iostream>
using namespace std;

int PrintString(char* s)
{
    cout << s << endl;
}

int main(int argc, char* argv[])
{
    PrintString("TESTEEEE");
    return 0;
}

Я уже пробовал PrintString(L"TESTEEEE");

Я также пробовал установить Project -> Properties -> Общие -> Набор символов опция для использования многобайтового набора символов.

error image

Ответы [ 2 ]

4 голосов
/ 19 июня 2020

Этот литерал "TESTEEEE" имеет тип char const[9]. При использовании в качестве аргумента функции он может распадаться до char const*, но не до char*. Следовательно, чтобы использовать вашу функцию, вы должны сделать параметр подходящим для вашего аргумента или наоборот:

#include <iostream>

using namespace std;
int PrintString(const char* s)
{
    cout << s << endl;
}


int main(int argc, char* argv[])
{

    PrintString("TESTEEEE");

    return 0;
}

live

OR

#include <iostream>

using namespace std;
int PrintString( char* s)
{
    cout << s << endl;
}


int main(int argc, char* argv[])
{
    char myArr[] = "TESTEEEE";
    PrintString(myArr);

    return 0;
}

живое

2 голосов
/ 19 июня 2020

У вас неверная константа, она должна быть:

void PrintString(const char* s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...