Лучший способ проверить, инициализирован ли указатель

есть ли способ проверить, был ли указатель инициализирован? У меня есть структура, которая cointain массив указателей

typedef struct foo
{
    int* ptr1;
    int* ptr2;
    int* ptr2;
    ...
    int* ptr100;
}

и затем мой код назначает адреса этим указателям (внутри цикла). Но перед назначением адреса я хочу проверить, содержит ли указатель уже адрес. Я знаю, что я могу initliazie каждый указатель с NULL а затем проверьте это с помощью:

if(ptr1 == NULL)
    do something

но есть ли способ написать что-то подобное, но без инициализации ptr?

2 ответов


неинициализированная переменная может содержать любое значение. Поэтому невозможно выяснить, является ли переменная неинициализированной, поскольку она может выглядеть как уже инициализированная переменная. Единственный способ убедиться, что переменная инициализирована, - это явно написать значение (например,NULL) Как вы уже отметили в своем вопросе.


у меня есть struct, который содержит массив указателей [...] есть ли способ написать что-то подобное, но без инициализации ptr?

нет.

связанный:https://stackoverflow.com/a/19626617/694576