Mark does indeed have the gist of the answer here, but just on a technical note, so as not to confuse some of the less experienced coders out there i would like to point out that the example just below is using pointers. and at 4 bytes a pop, even 32000 doesnt add up to a whole lot. with the declaration of struct room_data *world[MAX_ROOMS_AVAILABLE] you essentially get an array of pointers to a room_data structure. you must still CREATE(malloc) the individual rooms. with the declarations struct room_data *world = NULL; CREATE(world, struct room_data, rec_count); you get ONE pointer to a block of room_data structures(or an actual array of FULL room_data structures). if you wanted the same thing declared, but statically you would want to do something like: struct room_data world[MAX_ROOMS_AVAILABLE]. this would give you the block of room_data shaped space, and the handle of world. at least, i think so. its late, i've been up days(or so it seems) and i need a drink. if i am wrong, please somebody, correct me. but listen to mark, because he nailed the reason for dynamic memory allocation right on the head. it uses less memory--->fewer disk read/writes due to caching--->more efficient--->faster--->less machine lag---->happier mudders----> less mortal complaints---->you life is better :) "Mark A. Heilpern" wrote: > > At 05:05 PM 12/4/98 +0100, you wrote: > >Whats the advantage of > >struct room_data *world = NULL; > >and then later use > >CREATE(world, struct room_data, rec_count ); > > > >compared to *world[MAX_ROOMS_AVAILABLE] > >i.e declare a list of pointers to the max rooms that may be on the mud. > > creating an array of all the rooms that may ever be available (100/zone, 326 > zones, by default) would be huge and wasteful if they were not all in use. > using a smaller "max" restricts OLC of new rooms. CREATE() uses a > dynamic allocation to use just what's needed and, if a new room is created, > a new memory region will be allocated and the old one released to the system. > this makes things more efficient, in the long run. -- reply to bill<@>longboys.net(remove the<>) ...spam avoidance policy in effect. check out www.giftsgalore.com, lots 'o neat stuff there. GO JOHNNY!!! GO BILL!!! +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST