[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] Destroying uninitialized graphs

From: Gábor Csárdi
Subject: Re: [igraph] Destroying uninitialized graphs
Date: Tue, 8 Mar 2011 00:10:20 -0500


I somehow don't like this idea. I think the user should keep track of
what (s)he initializes and (s)he doesn't. The igraph_zero function
would just discourage this. I haven't seen such functions in other
libraries that are similar to igraph, e.g. GSL, either.

You can always write such a function for yourself, and you can write
your own destroy function as well, if you like, they are both very

void igraph_zero(igraph_t *graph) {
  memset(graph, 0, sizeof(igraph_t));

void igraph_mydestroy(igraph_t *graph) {
  char *c= (char*) graph;
  int i;
  for (i=0; i<sizeof(igraph_t); i++) {
    if (*c) { igraph_destroy(graph); return; }

(Untested, sorry.)

Best Regards,

On Mon, Mar 7, 2011 at 6:30 PM, Matthew Walker
<address@hidden> wrote:
> Hi Gabor, Tamas,
> Thanks again for your suggestions.
> I cannot help but ask, why isn't this approach available inside igraph?
> There could be an igraph_zero() function, that just zero'd the memory used
> in igraph_t.  Such a function would mean that igraph_destroy() could then be
> made safe to call on zero'd graphs.
> Thanks again,
> Matthew
> On 11-03-07 10:34 AM, Gábor Csárdi wrote:
>> Matthew,
>> there is no such function. You need to keep track of that. It is
>> actually not possible to write such a function, IMHO, because some
>> architectures do not zero out newly allocated memory. Although,
>> probably most of the do, nowadays.
>> What you can do, is filling the igraph_t by zeros after you allocate
>> it, and then check whether the 'from' field is zero or not. It should
>> not be zero for a valid graph.
>> Best,
>> Gabor
>> On Mon, Mar 7, 2011 at 10:28 AM, Matthew Walker
>> <address@hidden>  wrote:
>>> Hi,
>>> I currently have a problem in that my program seg faults because I am
>>> calling igraph_destroy() on an uninitialized graph.
>>> Is there a function to tell whether the graph is initialized?
>>> Thanks,
>>> Matthew
>>> _______________________________________________
>>> igraph-help mailing list
>>> address@hidden
>>> http://lists.nongnu.org/mailman/listinfo/igraph-help
> _______________________________________________
> igraph-help mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/igraph-help

Gabor Csardi <address@hidden>     UNIL DGM

reply via email to

[Prev in Thread] Current Thread [Next in Thread]