[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [or-cvs] Stupid sizeof operator!



Roger Dingledine wrote:

On Thu, Apr 08, 2004 at 07:41:47AM +0100, Ben Laurie wrote:

Log Message:
Stupid sizeof operator!

-  tmp_cpath = tor_malloc_zero(sizeof(tmp_cpath));
+  tmp_cpath = tor_malloc_zero(sizeof(crypt_path_t));
Errr ... stupid coder, you mean? You wanted:

tmp_cpath = tor_malloc_zero(sizeof *tmp_cpath);

No, I think sizeof(crypt_path_t) is a fine way to do it. It makes it
clearer to me that we're talking about the size of the struct, not the
size of a pointer or something.

I guess it could be a bother if tmp_cpath changes types, but I don't
think that's much of a problem.
You can do it either way, my point was that the sizeof operator was not at fault. I prefer the idiom "x=malloc(sizeof *x)" because you never have to check what x points to. Indeed some people define a NEW macro like this:

#define NEW(x) (x)=malloc(sizeof *(x))

Cheers,

Ben.

--
http://www.apache-ssl.org/ben.html http://www.thebunker.net/

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff