Лучший способ проверить, инициализирован ли указатель
есть ли способ проверить, был ли указатель инициализирован? У меня есть структура, которая cointain массив указателей
typedef struct foo
{
int* ptr1;
int* ptr2;
int* ptr2;
...
int* ptr100;
}
и затем мой код назначает адреса этим указателям (внутри цикла). Но перед назначением адреса я хочу проверить, содержит ли указатель уже адрес. Я знаю, что я могу initliazie каждый указатель с NULL
а затем проверьте это с помощью:
if(ptr1 == NULL)
do something
но есть ли способ написать что-то подобное, но без инициализации ptr
?
2 ответов
неинициализированная переменная может содержать любое значение. Поэтому невозможно выяснить, является ли переменная неинициализированной, поскольку она может выглядеть как уже инициализированная переменная. Единственный способ убедиться, что переменная инициализирована, - это явно написать значение (например,NULL
) Как вы уже отметили в своем вопросе.
у меня есть
struct
, который содержит массив указателей [...] есть ли способ написать что-то подобное, но без инициализацииptr
?
нет.