繁体   English   中英

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

[英]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);

(假设s1s2的类型为string3d *

您需要确保s1是指针,而不是结构。 如果是结构,则需要s1.x和s1.y,而不是s1-> x和s1-> y。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM