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