#include <stdio.h>
#include <string.h>
int main() {
char buf[ 256 ];
strcpy( buf
, "./a.out foo bar foobar barfoo\n" ); // simulate fgets()
int ac = 0;
char *av[ 32 ]; // Or make it dynamic (a minor challenge)
while( av[ac])
{
++ac;
av
[ac
] = strtok(NULL
, " \n" ); }
for( int i = 0; i < ac; i++ )
printf( "%d: %s\n", i
, av
[i
] ); printf( "And on the end of the array: %p\n", (void*)av
[ac
] );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKCkgewogICAgY2hhciBidWZbIDI1NiBdOwoKICAgIHN0cmNweSggYnVmLCAiLi9hLm91dCBmb28gYmFyIGZvb2JhciBiYXJmb29cbiIgKTsgLy8gc2ltdWxhdGUgZmdldHMoKQoKICAgIGludCBhYyA9IDA7CiAgICBjaGFyICphdlsgMzIgXTsgLy8gT3IgbWFrZSBpdCBkeW5hbWljIChhIG1pbm9yIGNoYWxsZW5nZSkKICAgIAogICAgYXZbYWNdID0gc3RydG9rKGJ1ZiwgIiBcbiIgKTsKICAgIHdoaWxlKCBhdlthY10pCiAgICB7CiAgICAJKythYzsKICAgIAlhdlthY10gPSBzdHJ0b2soTlVMTCwgIiBcbiIgKTsKICAgIH0KICAgIAogICAgZm9yKCBpbnQgaSA9IDA7IGkgPCBhYzsgaSsrICkKICAgICAgICBwcmludGYoICIlZDogJXNcbiIsIGksIGF2W2ldICk7CiAgICBwcmludGYoICJBbmQgb24gdGhlIGVuZCBvZiB0aGUgYXJyYXk6ICVwXG4iLCAodm9pZCopYXZbYWNdICk7CgogICAgcmV0dXJuIDA7Cn0=