Как сделать проверку переменной name на NULL, если структуре не была выделена память через malloc/calloc, то есть обращение к элементам реализуется через user_t usr; usr.name = "NAME";
Если я проверяю переменную if(usr.name) то она всегда не NULL.
jcmvbkbc, Верно, сейчас пробую все перечисленные варианты, в целом при первой инициализации проверка на NULL проходит, но при дальнейшем освобождение памяти все равно нужно обнулять. Не совсем понимаю такой принцип. Ранее я не использовал дот-поинтер, а выделял память динамически и подобной трудности не встречал, только в какой-то момент задался вопросом, можно ли как-нибудь сократить строки в программе.
user_t usr;
usr.name = NULL;
if ((void *) usr.name == NULL)
выделяем память сколько надо
else
память выделена, можно работать
Первое присвоение - нужно, потому что сразу после обьявления в usr.name - мусор. Явное приведение к viod не обязательно, но компилятор может матюгаться на несовместимые типы.