From: "Del" <caminturn@earthlink.net>
> Carlos Myers wrote:
> >
> > > Mike Breuer wrote:
> > > >
> > > > ACMD(do_write)
> > > > {
> > > > struct obj_data *paper, *pen = NULL;
> > > > - char *papername, *penname;
> > > > + char papername[MAX_STRING_LENGTH], penname[MAX_STRING_LENGTH];
> > > >
> > > > - papername = buf1;
> > > > - penname = buf2;
> > > >
> >
> > But two_arguments does not create a new string. It uses the existing
> > strings that were passed to it. So if you pass it a NULL, two_arguments
> > will reformat your harddrive, corrupt you BIOS and finally blow your
house
> > up. Well maybe not, but you will get some sort of error.
>
> Ok.. It must be the beginning of a long weekend!
> I think Mike was right. But I think MAX_STRING_LENGTH is a little large
> for this purpose. Would not MAX_INPUT_LENGTH be better?
Mike's changes makes things less confusion since they change the pointers to
the global buffers to actual strings. But when you call two_arguments you
are passing pointers to the strings and not the strings themselves.
Carlos
--
+---------------------------------------------------------------+
| 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