#include<cstdio>
#include<stdlib.h>
int main()
{
char* ptr=NULL;
printf("%s",ptr);
return 0;
}
Он выводит (null) в качестве вывода. Вышеприведенный пример. В реальном коде я получаю char * как возврат функции, и я хочу напечатать строку символов для ведения журнала. Тем не менее, NULL также является допустимым возвращаемым значением этой функции, и поэтому мне интересно, нужна ли нулевая проверка перед печатью символьной строки?
char* ptr=someFuncion();
// do i need the following if statement?
if(ptr!=NULL)
{
printf("%s",ptr);
}
Я просто хочу быть уверенным, что вывод будет таким же, т.е. если ptr = NULL, тогда вывод должен быть (null) на всех платформах и компиляторах, а приведенный выше код (без оператора if) не будет аварийно завершен на любой совместимой с C платформе.
Короче говоря, приведенный выше код (без оператора if) совместим?
Спасибо за вашу помощь и терпение:)
Привет
Lali