on: Tue, 23 Jul 2013 11:37:25 -0500
Dirk Eddelbuettel <e...@debian.org> wrote:

> | A singleton does make things easier. However, I still want to know how to
> | expose C structure with provided `free`-like function because sometimes we
> | cannot use singleton.
> 
> Manage your objects carefully, and don't call free() on NULL pointers.

According to the C standard, it is safe to call free on a null pointer. 
Similarly, according to the C++ standard, it is safe to call 'delete' on a null 
pointer.

Thus there is no need ever to test a pointer for null before 
free-ing/delete-ing. 

However, it *is* good practice to assign null to a pointer *after* 
free-ing/delete-ing, since that ensures that any subsequent calls to 
free/delete will be safe.

What is dangerous is calling free/delete twice on the same *non-null* pointer.

Regards,
Steve

Steve Jaffe
sja...@riskspan.com

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to