Hi,
in general there is no way to decide. You need to keep track of it yourself. If you have some dynamic data structure, e.g. a list of graphs, some initialized, some not, then create a structure like this:
typedef struct myigraph_t {
igraph_t graph;
igraph_bool_t inited;
} myigraph_t;
You need to make sure that you explicitly set 'inited' to false (0), when you create a new myigraph_t, because by default its value is undefined. (This is exactly why you cannot know if an igraph_t was initialized or not.)
Alternatively, you can create an igraph_vector_bool_t, with one element corresponding to each graph in your list. When you call igraph_vector_bool_init() on it, all elements are set to zero automatically. (But not if you resize it!).
These solutions might not work for you exactly, but hopefully you got the idea and can adapt them to your case.
Best,
Gabor