gpt4 book ai didi

c - 将第二个元素索引到数组末尾?

转载 作者:行者123 更新时间:2023-11-30 15:40:16 25 4
gpt4 key购买 nike

我有一个数组 args 定义如下:

char *args[MAX_LINE/+1];    /* MAX_LINE = 80 */

我想将 args[0] 传递给 execvp 并将数组的其余部分作为第二个参数:

execvp(args[0], args[1-x]);

我尝试了多种方法。即:

execvp(args[0], args+MAX_LINE);    /* args+MAX_LINE should point to the second element of the array (?) */

并编写一个额外的函数,通过将所有元素向左移动一个来删除数组的第一个元素:

void getOpts(char *opts[])
{
int i = 0; /* index used in the for loop */

for(i=0;opts[i] != NULL;i++)
opts[i] = opts[i+1];
}

这个解决方案有效,但部分有效。问题是第二个元素有时可能是NULL。调用execvp时系统返回错误。

有没有一种简单的方法可以将第二个元素索引到数组的末尾?

最佳答案

现在,args 是一个数组,它会衰减为指向数组第一个元素的指针,因此 args+1 指向第二个元素。所以你的代码应该是:

execvp(args[0], args+1);

关于c - 将第二个元素索引到数组末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21080858/

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