Your {0} initialization only inits the first element of the struct (or the 
whole struct if it consists of a single element), whereas memset inits the 
struct completely to 0 regardless of its size or internal structure. 

On the other hand, zeroing an entire struct with memset is dangerous unless it 
is guaranteed to be POD. If someone later changes the struct such that it is no 
longer POD, memset will still compile and run but it may overwrite some struct 
member constructor's work.

Paul

> -----Original Message-----
> From: chromium-dev@googlegroups.com [mailto:chromium-
> d...@googlegroups.com] On Behalf Of Book'em Dano
> Sent: Sunday, March 22, 2009 11:30 AM
> To: Chromium-dev
> Subject: [chromium-dev] Re: Quick question about struct initialization
> 
> 
> Sorry if I wasn't clear enough, but that's actually what my question
> is.
> 
> What's the need/point of calling memset if initialization via " = {0};
> " works just as well. Are you saying that it doesn't? Or are you
> saying that you're not quite sure, and to be on the safe side, do
> both. I'd like to avoid doing work (even if only 1 a liner) that isn't
> needed. i'd like to put this to rest once and for all, so if anyone
> knows, could please help me out here.
> 
> Cheers,
> Danny
> 
> On Mar 22, 5:23 am, Smita <vsmi...@gmail.com> wrote:
> > It works fine with gcc.
> > However, you might want to initialize the entire array to 0 using a
> > memset.
> >
> > Smita
> >
> > On Mar 21, 10:23 pm, "Book'em Dano" <daniel.c...@gmail.com> wrote:
> >
> > > Can someone please confirm whether it's safe to initialize a POD
> > > struct using:
> >
> > > MyStruct blat = {0};
> >
> > > with gcc on Linux/Mac? I know this works fine with the VC compiler,
> > > but I dont have gcc handy.
> >
> > > Thanks,
> > > D
> 

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to