<分区>
我正在尝试编译以下 C 代码:
#include<stdio.h>
#include<stdlib.h>
char *argv[] = {"v1.0", "v2.0", "v3.0"};
int main(void)
{
char *VER_LIST[] = {0};
int i;
/*for(i = 0; i<3; i++)
{
VER_LIST[i] = strdup(argv[i]);
}
VER_LIST[i] = NULL;*/
VER_LIST[0] = strdup(argv[0]);
VER_LIST[1] = strdup(argv[1]);
VER_LIST[2] = strdup(argv[2]);
VER_LIST[3] = NULL;
printf("%s", VER_LIST[2]);
return 0;
}
它显示正确的输出为 v3.0,但是如果我注释这部分代码
VER_LIST[0] = strdup(argv[0]);
VER_LIST[1] = strdup(argv[1]);
VER_LIST[2] = strdup(argv[2]);
VER_LIST[3] = NULL;
并使用 for
循环代替它向我显示了错误的结果。为什么我使用 for 循环会得到错误的结果?请帮忙。谢谢。