以下代码编译并与 gcc 4.4.5 一起使用。
#include <stdlib.h>
#include <stdio.h>
void foo(int no_of_users)
{
struct IP_addresses
{
char IPaddr[16];
};
struct IP_addresses ip_addr[no_of_users];
int i;
for(i = 0; i < no_of_users; i ++)
sprintf(ip_addr[i].IPaddr, "test%02d", i);
for(i = 0; i < no_of_users; i ++)
printf("%s\n", ip_addr[i].IPaddr);
}
int main(int argc, char **argv)
{
int i, no_of_users;
for(i = 1; i < argc; i ++)
{
no_of_users = strtol(argv[i], 0, 10);
foo(no_of_users);
}
return 0;
}
我不确定这些标准是怎么说的,但在实践中,它确实有效。这是我得到的结果:
$ gcc -o ./test ./test.c
$ ./test 3 4 5
test00
test01
test02
test00
test01
test02
test03
test00
test01
test02
test03
test04