On Fri, 9 Nov 2001, Ramsey Stone wrote: >(NEAR THE TOP) >+char *whomessage; > >(In ACMD(do_who), near the end) >+sprintf(buf + strlen(buf), "&R[&r%s&R]&n\n", *whomessage); > >+ACMD(do_whomessage) { >+one_argument(argument, arg); >+*whomessage = arg; >+} Four infractions: 1) Global variable will be for _everybody_, not just one person. You want the pointer in 'struct char_data' or 'struct descriptor_data'. 2) You want 'whomessage', not '*whomessage'. You're assigning a pointer, not writing to what the pointer goes to. 3) You need to allocate memory for that string. 'arg' is a magical global buffer that is used for many different functions. 4) Failure to grasp C. (To put it bluntly.) Best solution there is a good C book and a lot of quiet reading. It'll make more sense then. -- George Greer greerga@circlemud.org -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST