Здесь
void renderText(char *text) { }
text
имеет тип char*
и после его использования, чтобы не указывать text
на какое-либо недопустимое место в памяти, всегда лучше инициализироватьс NULL
, что означает, что он ничего не указывает.Следовательно, это
text = NULL;
правильно только в этом API, поскольку оно не отражает присваивание NULL
в вызывающей функции, поскольку text
локально создается в этой функции.Этот
*text = NULL;
недопустим, поскольку *text
имеет тип char
, а NULL
эквивалентен (void*)0
.
This
text[0] = '\0';
Работает нормально, если обработка ошибок соответствует приведенному выше утверждению.Например,
if(strlen(text) != 0) { /* something is there inside text */ }