Berkeley CSUA MOTD:Entry 52436
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/07/09 [General] UID:1000 Activity:popular
7/9     

2009/1/21-26 [Computer/SW/Languages/Java, Computer/HW/Memory] UID:52436 Activity:nil
1/21    If I have a linked list of structs and many of those structs have
        members that are structs then what is the best way to free() the
        memory when I am done with them? I thought I would walk the list
        and do a free() on each member of each struct, but that generates
        errors like free(): invalid pointer, presumably because I don't
        always allocate memory in each struct. No, I never took a class in
        memory management (obviously). In a Java World I don't worry
        about all this! ;)
        \_ Why don't you just check the pointer before calling free? i.e.
           if (p) { free(p); }
           \_ This was my first inclination and it doesn't change anything.
           \_ This should have no effect in this case.  The if only checks if
              p is null, and if p is null, most versions of free will ignore
              p is NULL, and if p is NULL, most versions of free will ignore
              it anyway.
                   \_ All versions.  It's a requirement in the standard.
                      \_ Hah, you assume all libc implementations are
                         compliant. Well, okay, things are better these days.
              That said, if you aren't allocating the memory for the pointer,
              you NEED to set the pointer to NULL.  Preferably at the point
              that the enclosing struct is allocated.  Otherwise that pointer
              may just be nonsense, which the if won't catch.
        \_ Well, do the structs contain other structs, or pointers to other
           structs?  If struct A contains struct B, struct B is allocated
           and free'd as part of struct A.
           If struct A contains a pointer to struct B, you need to make sure
           you're allowed to free the pointer before you do, perhaps there
           are multiple pointers to B, and B shouldn't be free'd until all
           the pointers are done.
           If you are supposed to free pointer to B, but you think you might
           be accidentally freeing it twice, you're going to have to be more
           careful and figure out where exactly you should free it.  There's
           no easy way out of that.
        \_ You need to define the difference between and owning an object and
           referring to one.  It's a logical difference -- the owners are
           responsible for lifetime, referring pointers just are assigned.
        \_ You're not doing something like the following, right???
                while (p != NULL) {
                    free(p);
                    p = p->next;
                }
2025/07/09 [General] UID:1000 Activity:popular
7/9     

You may also be interested in these entries...
2013/4/29-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Compilers] UID:54665 Activity:nil
4/29    Why were C and Java designed to require "break;" statements for a
        "case" section to terminate rather than falling-through to the next
        section?  99% of the time poeple want a "case" section to terminate.
        In fact some compilers issue warning if there is no "break;" statement
        in a "case" section.  Why not just design the languages to have
        termination as the default behavior, and provide a "fallthru;"
	...
2013/5/1-18 [Computer/SW/Languages/Java, Computer/Theory] UID:54669 Activity:nil
5/1     What's the difference between CS and Computer Engineering?
        http://holykaw.alltop.com/top-ten-paying-degrees-for-college-graduates
        \_ One is science and the other is engineering.
        \_ From http://en.wikiquote.org/wiki/Computer_science
           'A folkloric quotation ... states that "computer science is no more
           about computers than astronomy is about telescopes."  The design
	...
2013/3/5-26 [Computer/SW/Languages/Java] UID:54618 Activity:nil
3/5     Three emergency Java updates in a month. Why do I have a feeling
        that the third one won't be the last one?
        \_ Bingo!
	...
2012/12/18-2013/1/24 [Computer/SW/Languages/Perl] UID:54561 Activity:nil
12/18   Happy 25th birthday Perl, and FUCK YOU Larry Wall for fucking up
        the computer science formalism that sets back compilers development
        back for at least a decade:
        http://techcrunch.com/2012/12/18/print-happy-25th-birthday-perl
        \_ I tried to learn Perl but was scared away by it.  Maybe scripting
           lanauages have to be like that in order to work well?
	...
2012/12/4-18 [Computer/SW/Languages/Java] UID:54544 Activity:nil
12/4    Holy cow, everyone around me in Silicon Valley is way beyond
        middle class according to Chinni's definition:
        http://en.wikipedia.org/wiki/American_middle_class
        \_ Let's set our goals higher:
           http://en.wikipedia.org/wiki/Upper_middle_class_in_the_United_States
           \_ How about this one?
	...
2012/10/29-12/4 [Science/Disaster, Computer/SW/Languages/Java, Politics/Domestic/President/Bush] UID:54516 Activity:nil
10/29   Go Away Sandy.
        \_ Sorry, Coursera is performing preventive maintenance for this
           class site ahead of Hurricane Sandy. Please check back in 15 minutes.
           class site ahead of Hurricane Sandy. Please check back in 15
           minutes.
        \_ Bitch.
	...
2012/2/5-3/26 [Computer/SW/WWW/Browsers] UID:54300 Activity:nil
2/5     How is Firefox on version 10, while I still have 3.6 installed.
        I wait for the X.1 versions and they never come out.
        \_ I'm also on 3.6.26.  It claims that versions 4 - 10 are all faster
           than 3.6.x, but do they use more memory?  Thx.
           \_ Newer Firefox versions use less memory too:
              http://www.maximumpc.com/article/news/mozillas_memshrink_program_brings_big_memory_savings_firefox_7
	...
2011/6/5-8/27 [Computer/HW/Memory] UID:54127 Activity:nil
6/5     In an effort to stabilize our services, we'll be rebuilding parts of
        the CSUA infrastructure over the course of this summer.  To give us
        some wiggle room, I've temporarily decreased soda's allocated RAM from
        8GB to 2GB.  If you need to run something that requires large amounts
        of memory, please send mail to root@csua.org and we'll try to
        accommodate your request.  --jordan
	...
2011/3/26-4/20 [Computer/HW/Memory] UID:54062 Activity:nil
3/19    When you're explaining the stack to people do you draw it with the
        highest addresses at the top or at the bottom?
        \_ When I explain any memory layout including stacks, I draw with the
           highest addresses at the bottom.  But I've seen people doing the
           other way.  -- yuen
           \_ do you by any chance have seen or have a jpg of the full memory
	...
2010/7/25-8/25 [Computer/SW/Graphics] UID:53897 Activity:nil
7/25    What's up with that moving bit pattern that Win7 displays when it
        boots up?  (It's the one that's like in the Apple II days when you
        use the graphics memory for code or data while it's still in HGR
        mode.)  Is there a way to disable that?  It slows things down a lot
        every time I reboot my Win7 VM on my office machine if I RDP to the
        machine via DSL.  Thanks in advance.
	...
2010/5/26-6/30 [Computer/SW/Unix/WindowManager, Computer/SW/OS/OsX] UID:53844 Activity:nil
5/26    anyone use lxde?  supposedly it is less stupid than xfce and
        less bloated than gnome.  thoughts?
        \_ lol, does anyone still use desktop linux?  Get with the times
           buy a mac.  Now.  DO IT.  Go NOW.
           \_ but we prefer herring to Kool-Aid
              \_ "you have to yell, he's hard of herring"
	...
2010/6/4-30 [Computer/SW/Languages/C_Cplusplus] UID:53849 Activity:nil
6/4     Is this valid C++ code?
        std::string getStr(void) {
            std::string str("foo");
            return str;
        }
        void foo(char *s);
	...
2009/12/7-2010/1/3 [Computer/HW/Memory, Computer/HW] UID:53574 Activity:nil
12/7    How many TCP retransmits are too many? Here is what I get:
            3594143433 segments received
            3760174421 segments send out
            3801829561 segments retransmited
        \_ rephrase. you can never have too much money. or too little.
           what is, is.
	...
2009/10/27-11/3 [Computer/HW/Drives] UID:53474 Activity:nil
10/27   I just read an article that Facebook had moved their database
        to all SSD to speed throughput, but now I can't find it. Has
        anyone else seen this? Any experience with doing this? -ausman
        \_ I hope you're not running mission critical data:
           http://ask.slashdot.org/story/09/10/27/1559248/Reliability-of-PC-Flash-SSDs?from=rss
        \_ Do you have any idea how much storage space is used by Facebook,
	...
2009/7/21-24 [Computer/SW/Languages/Java] UID:53168 Activity:moderate
7/20    For those who care btw, it looks like eclipse is now A Standard Tool
        at UCB ugrad cs, probably replaced emacs.  Furthermore, people get
        angry at seeing Makefiles, (since eclispe takes care of that).  I
        guess it's just a sign of the times.
        \_ The more people at my work use eclipse the less the code is
           managable in emacs.  I'm not sure which application's fault
	...