[英]Accessing double pointer from a struct and using it in execvp
我试图在这样的结构中声明一个char指针和一个double char指针:
typedef struct string3d {
char **x;
char *y;
} string3d;
我在主程序中声明了该结构的数组,然后解析字符串的输入并将其标记化并将它们传递给此结构。 在主程序中,我调用一个函数来创建本质上派生一个孩子的进程。 我将这些字符串标记传递给execvp,如下所示:
execvp(*s1->y,s1->x);
此处s1定义为
struct string3d *s1;
但是在编译时它说:
错误:下标值既不是数组也不是指针。
有什么建议么? 提前致谢。
该函数的签名是:
int execvp(const char *file, char *const argv[]);
这相当于:
int execvp(const char *file, char **const argv);
因此,您必须这样称呼它:
execvp(s1->y, s1->x);
(假设s1
和s2
的类型为string3d *
)
您需要确保s1是指针,而不是结构。 如果是结构,则需要s1.x和s1.y,而不是s1-> x和s1-> y。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.