int main(int argc, char* argv[])
{
char *c = "whats:your:name:buddy?";
^^^^^^^^^^^^^^^^ that is not read only copy. you can not write
into it. replace it with
char *c = strdup("whats:your:name:buddy?");
Or the following:
char c[] = "whats:your:name:buddy?";
which doesn't require a free() operation when you're done with c[].
actually it still will crash :)
beetle% cat 5.c
#include <string.h>
int
main(int argc, char* argv[])
{
char c[] = "whats:your:name:buddy?";
strsep((char **) &c, ":");
return (0);
}
beetle% gcc -Wall -ggdb 5.c
beetle% ./a.out
Segmentation fault (core dumped)
so something like this
#include <string.h>
int
main(int argc, char* argv[])
{
char c[] = "whats:your:name:buddy?", *s = c;
strsep((char **) &s, ":");
return (0);
}
will work too.
max
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"