У меня есть эта функция:
void printError(char* pszOrigin, int nErr) {...}
При вызове с литеральной строкой:
printError("LScreateModel",nErr);
Нужно ли добавлять \0 в конец строкового литерала"LScreateModel"? Или он получается автоматически?
\0
"LScreateModel"
Нет, нет.Строковые литералы уже заканчиваются нулем.
Он добавляется автоматически, поскольку вы создаете const char * со строковым литералом.
Строковый литерал, такой как "hello", считается константной строкой C и обычно содержит свои данные.тип указан как const char * (указатель на постоянную типа char).
Более подробную информацию о строках C можно найти здесь .