gpt4 book ai didi

c - 在 C 中使用 strdup。这里出了什么问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:54 27 4
gpt4 key购买 nike

<分区>

我正在尝试编译以下 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 循环会得到错误的结果?请帮忙。谢谢。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com