Нужно ли мне добавлять \ 0 в конец строкового литерала, передаваемого в функцию? - PullRequest
2 голосов
/ 28 сентября 2019

У меня есть эта функция:

void printError(char* pszOrigin, int nErr) {...}

При вызове с литеральной строкой:

printError("LScreateModel",nErr);

Нужно ли добавлять \0 в конец строкового литерала"LScreateModel"?
Или он получается автоматически?

Ответы [ 2 ]

2 голосов
/ 28 сентября 2019

Нет, нет.Строковые литералы уже заканчиваются нулем.

1 голос
/ 28 сентября 2019

Он добавляется автоматически, поскольку вы создаете const char * со строковым литералом.

Строковый литерал, такой как "hello", считается константной строкой C и обычно содержит свои данные.тип указан как const char * (указатель на постоянную типа char).

Более подробную информацию о строках C можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...