gpt4 book ai didi

c - 从结构访问双指针并在 execvp 中使用它

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:59 24 4
gpt4 key购买 nike

我试图在结构中声明一个单字符指针和一个双字符指针,如下所示:

typedef struct string3d {  
char **x;
char *y;
} string3d;

我在我的主程序中声明了这个结构的数组,然后我解析了一个字符串输入并对它们进行标记并将它们传递给这个结构。在主程序中,我调用一个函数来创建进程,该进程本质上是 fork 一个 child 。我像这样将这些字符串标记传递给 execvp:

execvp(*s1->y,s1->x);

这里s1定义为

struct string3d *s1;

但是在编译时它是这样说的:

error: subscripted value is neither array nor pointer.

有什么建议吗?提前致谢。

最佳答案

函数的签名是:

int execvp(const char *file, char *const argv[]);

这相当于:

int execvp(const char *file, char **const argv);

所以你必须这样调用它:

execvp(s1->y, s1->x);

(假设 s1s2 的类型为 string3d *)

关于c - 从结构访问双指针并在 execvp 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650808/

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